【发布时间】:2015-04-13 14:32:16
【问题描述】:
我们有两个 CSV 文件:a.csv 和 b.csv。
a.csv 具有树列:label、item1、item2。 b.csv 有两列:item1、item2。如果a.csv中的item1和item2也出现在b.csv中,那就是a.csv和b.csv具有相同的item1和item2,a.csv 中 label 的值应该改为 1。如何使用pandas进行交易?
例如:
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中的任何位置?