如何从熊猫的同一列中创建一个行值数组?

Posted

技术标签:

【中文标题】如何从熊猫的同一列中创建一个行值数组?【英文标题】:How to make an array of row values from same column in pandas? 【发布时间】:2022-01-18 21:51:42 【问题描述】:

在这里,我有下表,其中包含 3 列 S.No、Test 和 Key。我想以数组的形式将列“Key”中的那些行连接起来,其中列“Test”的值与表 2 中的值相同(结果表)。 表一:

S.No    Test    Key
   1    AB     X1
   2    AB     X2
   3    12     X1
   4    34     X4
   5    AB     X3
   6    12     X5
   7    11     X2
   8    12     X6
   9    QW     X0

表 2(结果):

S.No    Test       Key
 1      AB        [X1,X2,X3]
 2      12        [X1,X5,X6]
 3      34        [X4]
 4      11        [X2]
 5      QW        [X0]

有人可以帮助我如何做到这一点。现在我刚刚收到重复的条目。谢谢。

【问题讨论】:

df.groupby('Test',as_index=False).agg('Key':list) ? 【参考方案1】:

使用groupby Test 列创建Key 列表

new_df = df.groupby('Test', sort=False)['Key'].apply(list).to_frame()
new_df.reset_index(inplace=True)
new_df.index = np.arange(1,len(new_df)+1)
new_df['S.No'] = new_df.index
new_df = new_df[df.columns]

输出:

  S.No    Test    Key
1 1   AB  [X1, X2, X3]
2 2   12  [X1, X5, X6]
3 3   34  [X4]
4 4   11  [X2]
5 5   QW  [X0]

【讨论】:

以上是关于如何从熊猫的同一列中创建一个行值数组?的主要内容,如果未能解决你的问题,请参考以下文章

如何在遍历熊猫数据框时创建新列并插入行值

如何通过在两行之间划分特定列中的值并保持其他列不变来在熊猫数据框中创建新行?

如何在熊猫数据框中创建滑动窗口并应用函数

如何从熊猫数据框中创建一个字典?

如何在熊猫中创建数据框视图?

如何根据来自dfB的列/行值,用来自另一个数据框(dfB)的值填充熊猫数据框(dfA)列“ A”?