Сравнение 2 файлов данных и создайте новый файл с отсутствующими данными с помощью PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Сравнение 2 файлов данных и создайте новый файл с отсутствующими данными с помощью Python

Сообщение Anonymous »

Я довольно новичок в Python и пытаюсь создать приложение, в котором я беру основной файл, который содержит информацию о продукте, и сравнивает его с более старым файлом данных с теми же данными. < /p>
Цель приложения состоит в том, чтобы выделить любые новые продукты с использованием столбца «SKU», а затем генерировать новый файл, который содержит все одинаковые столбцы из основного файла, но только «новые» продукты, перечисленные.
< Br /> Описания имени файла: < /p>
" downloaded_data.csv " - это мастер -файл, который загружается с URL. < /p>
" Current -data.csv " - Это старый файл данных, чтобы сравнить с собой, чтобы найти новые продукты. Продукты, которые появляются в главном файле после сравнения с текущим файлом данных (curnt-data.csv). Этот новый файл также должен также включать все столбцы, которые появляются в мастер -файле (загрузка SKU, которые считаются новыми. < /P>
Примеры столбцов из файла "Загрузить" hadata.csv ", который также должен отображаться в новом файле. < /P>



title < /th>
url изображения < /th>
sku < /th>
< /tr>
< /thead>


Имя продукта One < /td>
imageurl.jpg
sku123 < /td>
< /tr>

Имя продукта два < /td>
td> imageurl.jpg
sku456 < /td>
< /tr> < /tbody>
< /table> < /div>
Пример столбцов из файла «current-data.csv». Сравните приведенный выше пример файла CSV с использованием столбцов «SKU» и «ID»: < /p>


id < /th>
image url < /th>
Название продукта < /th >
< /tr>
< /thead>


sku123 < /td>
ImageUrl.jpg < /td>
имя продукта One < /td>
< /tr>

sku456 < /td>
sku456 < /td>
/> imageurl.jpg >
Имя продукта два


< /div>
ниже мой код Python. После запуска этого файла "newProducts.csv" в конечном итоге является копией загруженного мастер-файла. < /P>
import pandas as pd
import requests

pd.set_option("display.max_rows", None)

# Dowload CSV file
url = "URL GOES HERE"
response = requests.get(url)

# Check if the request was successful (status code 200)
if response.status_code == 200:
# Save the content of the response to a local CSV file
with open("downloaded_data.csv", "wb") as f:
f.write(response.content)
print("CSV file downloaded successfully")
else:
print("Failed to download csv file. Status code: ", response.status_code)

# Read the CSV file into a Pandas DataFrame
master_file_compare = pd.read_csv("downloaded_data.csv", usecols=[29], names=['SKU'])
account_data = pd.read_csv("account-data.csv", usecols=[5], names=['SKU'])

# Merging both dataframe using left join
comparison_result = pd.merge(master_file_compare,account_data, on='SKU', how='left', indicator=True)

# Filtering only the rows that are available in left (master_file_compare)
comparison_result = comparison_result.loc[comparison_result['_merge'] == 'left_only']

comparison_result.to_csv('comparison-file.csv', encoding='utf8')

# Compare Comparison file to master and generate data file
with open('downloaded_data.csv', 'r', encoding='utf8') as in_file, open('new-products.csv', 'w', encoding='utf8') as out_file:
for line in in_file:
if line.split(',')[0].strip() not in comparison_result:
out_file.write(line)

# print(account_data.head)
print(comparison_result)
< /code>
Чтобы отметить, что текущие данные (файл сравнения) не будут иметь одинаковые столбцы или даже упорядочение столбцов. Все, что я стремлюсь сделать, это сопоставить на столбцах SKU, так как это идентификаторы. /> Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/793 ... ing-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»