列表值列到Python中的一个平面列表

时间:2019-12-11 12:02:15

标签: python pandas list

我的pandas列中包含多个字符串值,我想将它们转换为一个列表,以便我可以对其进行计数

         df.columnX
Row 1    ['A','B','A','C']
Row 2    ['A','C']
Row 3    ['D','A']

我想要输出

 Tag   Count 
    A 4
    B 1
    C 2
    D 1

我正在尝试将其列出来,但双引号即将到来

df.columnX.values = ["'A','B',,,,,,,,,'A'"]

预先感谢

2 个答案:

答案 0 :(得分:0)

我明白了

flatList = [item for sublist in list(df.ColumnX.map(ast.literal_eval)) for item in sublist]


dict((x,flatList.count(x)) for x in set(flatList))

答案 1 :(得分:0)

那呢?

df.explode('columnX').columnX.value_counts().to_frame()

请注意,您需要熊猫> 0.25.0才能工作。

如果您的列表实际上是字符串,则可以先将它们转换为列表(如@Jon Clements所建议):

import ast
df.columnX = df.columnX.map(ast.literal_eval)