【发布时间】:2016-01-17 15:05:24
【问题描述】:
我有以下问题:我有一个分组对象。对于每个分组的对象,我想为该组的特定列中包含的所有值创建一个逗号分隔的列表。我的代码如下:
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 中包含的所有数据的“汇总”。
我现在的问题是当我printAll_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']
有人知道如何让我的代码像这样工作吗?我觉得这只是一件小事,但我不接受它。提前致谢!
【问题讨论】:
标签: python list pandas group-by