Python 使用Pandas连接数据帧的唯一性

Python 使用Pandas连接数据帧的唯一性,python,pandas,csv,dataframe,Python,Pandas,Csv,Dataframe,我有365个CSV文件,代表唯一样本位置的平均值。每个CSV文件代表不同的一天。例如,我的CSV文件列为Day1.CSV、Day2.CSV、Day3.CSV等。我可以在Python中导入所有CSV,并使用Pandas将它们转换为数据帧,基本上将所有365个DFs追加到一个长数据帧中。下面是长数据帧: Location MEAN Day A 0.2235 1 B 0.8215 1 C 0.0159 1 D 0.4259 1 A 0.5902 2 B 0

我有365个CSV文件,代表唯一样本位置的平均值。每个CSV文件代表不同的一天。例如,我的CSV文件列为Day1.CSV、Day2.CSV、Day3.CSV等。我可以在Python中导入所有CSV,并使用Pandas将它们转换为数据帧,基本上将所有365个DFs追加到一个长数据帧中。下面是长数据帧:

Location    MEAN    Day
A   0.2235  1
B   0.8215  1
C   0.0159  1
D   0.4259  1
A   0.5902  2
B   0.6201  2
C   0.0239  2
D   0.3021  2
A   0.7291  3
B   0.5022  3
C   0.0504  3
D   0.4982  3
……等等

位置不变

我想做的是获取这个很长的附加DF(在365天内合并),并按位置顺序连接平均值。我希望有一个新的“平均值”列,它按日期列出所有平均值,用逗号(或其他定界符)分隔。基本上,这就是我想要的:

Location    MEAN
A   "0.2235, 0.5902, 0.7291"
B   "0.8215, 0.6201, 0.5022"
C   "0.0159, 0.0239, 0.0504"
D   "0.4259, 0.3021, 0.4982"
其中每个位置只列出一次,所有方法按天顺序列出(第1天、第2天等)

下面是创建大型合并DF所需的快速Python代码:

combined_csv = pd.concat( [ pd.read_csv(f) for f in Files ] )

如何在此基础上生成所需的串联文件,并按天顺序列出平均值?

仅使用
cumcount
即可获得第二个lvl
merge
键,根据您的文件排序

combined_csv = pd.concat( [ pd.read_csv(f) for f in Files ],keys=np.arange(len(Files)) ).reset_index(level=0)


Longdf['level_0']=Loandf.groupby('Location').cumcount()

Longdf=Longdf.merge(combined_csv,on=['Location','level_0'],how='left').drop('level_0',1)

哇,太神奇了!这正是我要找的,只有两行代码。太神了谢谢
df1 = df.sort_values(['Location','Day']).reset_index()
df1.groupby(['Location'])['MEAN'].apply(lambda x : ','.join(x))


Location
A    0.2235,0.5902,0.7291
B    0.8215,0.6201,0.5022
C    0.0159,0.0239,0.0504
D    0.4259,0.3021,0.4982
Name: MEAN, dtype: object