Я хочу извлечь данные из двух CSV-файлов, когда они совпадают в определенном столбце, но в нем всегда отсутствуют некотоPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Я хочу извлечь данные из двух CSV-файлов, когда они совпадают в определенном столбце, но в нем всегда отсутствуют некото

Сообщение Гость »


У меня есть 2 файла CSV, в них есть один столбец, в котором есть код, и я хочу, чтобы всякий раз, когда этот код совпадает, строка извлекалась из обоих файлов, и я попробовал приведенный ниже код, который работает ниже, за исключением пары строк, где код совпадает, когда я ищу его вручную с помощью CTRL+F, но он каким-то образом пропускает эти строки.
Есть ли способ узнать, почему он их пропускает, например, как он читает данные или что-то в этом роде?

Код: Выделить всё

import pandas as pd
import os

para_filename = r'D:\PFE\Final_comparing\fichiers_base_grossistes\para-bapharma.csv'
para_df = pd.read_csv(para_filename)

converted_filename = r'D:\PFE\Final_comparing\fichiers_ventes\I660124N.csv'
converted_df = pd.read_csv(converted_filename)

matching_df = pd.merge(para_df, converted_df, left_on='code', right_on='code produit', how='left')

matched_names_df = matching_df[['name', 'nom de produit']].drop_duplicates()

matched_names_df = matched_names_df[matched_names_df['nom de produit'].notna()]

matched_names_grouped_df = matched_names_df.groupby('name')['nom de produit'].agg(lambda x: '; '.join(x)).reset_index()

matched_output_filename = os.path.splitext(os.path.basename(para_filename))[0] + "_matched_" + os.path.splitext(os.path.basename(converted_filename))[0] + ".csv"
med_names_output_filename = os.path.splitext(os.path.basename(converted_filename))[0] + "_med_names.csv"

matched_names_grouped_df.to_csv(matched_output_filename, index=False)

med_names_df = converted_df['nom de produit'].drop_duplicates()

med_names_df.to_csv(med_names_output_filename, index=False)

print(f"Files '{matched_output_filename}' and '{med_names_output_filename}' have been generated.")

These are the first 5 lines of each csv file for reference:
I660124N.csv:

Код: Выделить всё

code grossiste,code produit,lettre,code postal,unite vendu,nom de produit,prix

50066,303107,B,1000,00000003,FOSALEN D3 BTE 12,00000.000
50066,303107,B,1003,00000002,FOSALEN D3 BTE 12,00000.000
50066,303107,B,1004,00000002,FOSALEN D3 BTE 12,00000.000
50066,303107,B,2041,00000002,FOSALEN D3 BTE 12,00000.000

para-bapharma.csv:

code,name

644018,AD.EXOMEGA LAIT 400ML
649595,AD.PAIN AU LAIT D'AVOINE
31,ADOLOR   GEL

AD04,ADOLOR FORT BT30


Источник: https://stackoverflow.com/questions/781 ... column-but
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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