У нас есть два файла CSV: a.csv
и b.csv
.Python Pandas: как обновить файл csv из другого csv-файла
a.csv
имеет дерево столбцов: ярлык, item1, ITEM2. b.csv
имеет две колонки: item1, item2. Если ITEM1 и item2 в a.csv
также occurr в b.csv
, это a.csv
и b.csv
имеют тот же item1 и item2, значение метки в a.csv
должно быть вместо этого. Как использовать панды для решения?
Например:
a.csv:
label item1 item2
0 123 35
0 342 721
0 876 243
b.csv:
item1 item2
12 35
32 721
876 243
Result.csv:
label item1 item2
0 123 35
0 342 721
1 876 243
Я попытался это, но он не работает:
import pandas as pd
df1 = pd.read_csv("~/train_dataset.csv", names=['label', 'user_id', 'item_id', 'behavior_type', 'user_geohash', 'item_category', 'time','sales'], parse_dates=True)
df2 = pd.read_csv(~/train_user.csv", names=['user_id', 'item_id', 'behavior_type', 'user_geohash', 'item_category', 'time', 'sales'], parse_dates=True)
df1.loc[(df1['user_id'] == df2['user_id'])& (df1['item_id'] == df2['item_id']), 'label'] = 1
Должны ли элементы быть в одной строке в обоих файлах 'csv', или может ли данная строка в' a.csv' появляться где-нибудь в 'b.csv'? – TheBlackCat