如何合并CSV以使用Pandas压缩数据

时间:2016-01-05 01:03:22

标签: csv python-3.x pandas

我有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”,但实际上并没有弄明白。 (显然我不是很新)

我甚至不确定我是否能在熊猫中完成我想做的事。

非常感谢任何建议或指示。

1 个答案:

答案 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