熊猫将列转换为列表并添加新列

时间:2018-12-12 00:29:58

标签: python pandas multiple-columns

Python的新手。我正在尝试将列C转换为列表,并将其添加为df中的额外列D。 我试过list()它适用于单个原始。但这不适用于df中的整个C列。 我需要提示/帮助才能前进。

输入

A   B   C 
----------------
1  21  12457643  
2  32  34576543  
3  41  23456789

输出

A   B   C              D
------------------------------------
1  21  12457643   [1,2,4,5,7,6,4,3]  
2  32  34576543   [3,4,5,7,6,5,4,3]  
3  41  23456789   [2,3,4,5,6,7,8,9]

2 个答案:

答案 0 :(得分:0)

通常,将列表存储在pandas列中不是一个好主意。但是,如果您坚持要把数字转换为字符串,然后转换为字符列表:

df['D'] = df['C'].astype(str).apply(list)
#0    [1, 2, 4, 5, 7, 6, 4, 3]
#1    [3, 4, 5, 7, 6, 5, 4, 3]
#2    [2, 3, 4, 5, 6, 7, 8, 9]

结果是一个字符列表。如果您想要一个单位数的列表,则需要通过lambda应用自定义函数:

df['D'] = df['C'].astype(str).apply(lambda x: list(map(int, x)))
#0    [1, 2, 4, 5, 7, 6, 4, 3]
#1    [3, 4, 5, 7, 6, 5, 4, 3]
#2    [2, 3, 4, 5, 6, 7, 8, 9]

答案 1 :(得分:0)

使用outs = f([[[3]], [[23]], [[0.0]]])

findall