我有2个不同的CSV,它们共享一个共同的索引。 ( 'ID')
File1 =删除了ID:
ID
54634
1004789
7365412
File2 =带时间戳的ID操作:
ID TimeStamp Action
54634 10/1/2015 12:38 XX
1004789 9/1/2015 11:14 YY
1004789 7/4/2015 9:10 ZZ
7365412 6/11/2015 13:44 WW
54634 8/1/2015 12:38 YY
54634 5/1/2015 12:38 ZZ
54634 3/1/2015 12:38 WW
我的简单代码如下:
import pandas as pd
import os
os.chdir(r"C:\Users\XXXXXX\Documents")
data = pd.read_csv('File1.csv')
data1 = pd.read_csv('File2.csv')
pd.merge(File1, File2, on ='ID')
上面的代码导致:
ID TimeStamp Action
0 54634 10/1/2015 12:38 XX
1 54634 8/1/2015 12:38 YY
2 54634 5/1/2015 12:38 ZZ
3 54634 3/1/2015 12:38 WW
4 1004789 9/1/2015 11:14 YY
5 1004789 7/4/2015 9:10 ZZ
6 7365412 6/11/2015 13:44 WW
我想要完成的是拥有和结束数据集,如:(将动作附加到ID的右侧,由TimeStamp提升)
54634 WW ZZ YY XX
1004789 ZZ YY
7365412 WW
我已经玩了很多“concat”,但实际上并没有弄明白。 (显然我不是很新)
我甚至不确定我是否能在熊猫中完成我想做的事。
非常感谢任何建议或指示。
答案 0 :(得分:0)
听起来你正在寻找某种groupby
;这应该让你接近你想要的:
m = pd.merge(data1, data2, on ='ID')
m.groupby('ID').Action.apply(lambda x: ' '.join(x.tolist()))
ID
54634 XX YY ZZ WW
1004789 YY ZZ
7365412 WW