pandas 遍历多个 DataFrame,并为每个键创建出现列表

pandas iterate over many dataframe and create list of occurance per key

提问人:Cranjis 提问时间:3/28/2023 最后编辑:Cranjis 更新时间:3/28/2023 访问量:44

问:

我有几百个具有相同结构的数据帧。 我想按如下方式聚合每个键: 对于列表列 - 创建列表列表(其中每个列表是特定数据帧的值) 例如,在 2 个数据窗口的情况下:

df1 =  
Key  C1.  C2. C3
 A  [1,2]  6   b
 B  [6,1]  9   c

df2 = 
Key  C1   C2   C3
 B  [5,8]  2    t
 A  [7,2]  3    z

df_agg =  
   Key      C1          C2        C3 
    A  [[1,2],[7,2]]   [6,3]    [b,z]  
    B  [[6,1],[5,8]]   [9,2]    [c,t]

请注意,我有几百个:df1、df2、...DFN的

Python Pandas DataFrame 聚合 数据

评论


答:

0赞 jezrael 3/28/2023 #1

编辑:数据帧列表的解决方案 - 使用 concat 和 aggregate:list

dfs = [df1, df2]

df = pd.concat(dfs).groupby('Key', as_index=False).agg(list)
print (df)
  Key                C1      C2      C3
0   A  [[1, 2], [7, 2]]  [6, 3]  [b, z]
1   B  [[6, 1], [5, 8]]  [9, 2]  [c, t]

评论

0赞 Cranjis 3/28/2023
请看编辑,我有很多数据帧
0赞 jezrael 3/28/2023
@Cranjis - 每个 DataFrame 的 s 是唯一的吗?key
1赞 Cranjis 3/28/2023
所有数据帧都具有完全相同的形状,每个数据帧有 8 列和 199 行 - 这是 Key 的 199 个唯一值