gpt4 book ai didi

python - 如何输出分组对象中指定列中所有值的列表

转载 作者:太空宇宙 更新时间:2023-11-04 03:25:27 25 4
gpt4 key购买 nike

我有以下问题:我有一个分组对象。对于每个分组对象,我想为该组的特定列中包含的所有值创建一个逗号分隔列表。我的代码如下:

for key, group in df.groupby('Column1'):
All_values_in_group = []
for item, frame in group['Column2'].iteritems():
list = frame.split(',')
for value in list:
All_values_in_group.append(value)
print key
print All_values_in_group

这背后的想法是我按特定列对数据进行分组,然后制作一个空列表。然后,对于每个 frame(行),我通过拆分包含在 ',' 处的行中的 string 来创建一个列表。然后将此列表中的每个值附加到我想要的 output_list All_values_in_group。此列表应是 X 组每一行的 Column2 中包含的所有数据的“摘要”。

我现在的问题是,当我print All_values_in_group 时,我没有得到一个列表,而是多个列表,就像这样(L1 是组键):

L1
['string1]
L1
['string1, 'string2']
L1
['string1', 'string2', 'string3']

我只想要一个 All_values_in_group 列表,其中包含该组中 Column2 的所有值,就像示例中的最后一行一样,我想保留重复项。

为了更清楚,这是我的数据示例:

   Column1  Column2 
0 L1 string1,string2,string3
1 L1 string1
2 L1 string2,string3
3 L2 stringA,stringB

我想要的是:

L1
All_values_in_group ['string1', 'string2', 'string3', 'string1', 'string2', 'string3']
L2
All_values_in_group ['stringA', 'stringB']

有人知道让我的代码像这样工作的方法吗?我觉得这只是一件小事,但我没有接受它。提前致谢!

最佳答案

您可以对“Column1”进行分组并应用一个调用join 的lambda 来连接所有字符串值,然后如果您希望从该结果构造一个列表对象:

In [22]:
df.groupby('Column1')['Column2'].apply(lambda x: [','.join(x)])

Out[22]:
Column1
L1 [string1,string2,string3,string1,string2,string3]
L2 [stringA,stringB]
Name: Column2, dtype: object

关于python - 如何输出分组对象中指定列中所有值的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33211513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com