Pandas 将每个单元格都是字符串列表的列转换为整数列表

Pandas convert column where every cell is list of strings to list of integers

我有一个数据框,其中的列将数字列表作为字符串:

C1 C2 l
1   3 ['5','9','1']
7   1 ['7','1','6']

将其转换为整数列表的最佳方法是什么?

C1 C2 l
1   3 [5,9,1]
7   1 [7,1,6]

谢谢

Pandas' 数据框不适用于列表等嵌套结构。因此,此任务没有矢量方法。

你需要循环。最有效的是使用列表理解(apply 也可以,但效率要低得多)。

df['l'] = [[int(x) for x in l] for l in df['l']]

注意。没有支票。如果你有任何不能转换为整数的东西,这将触发一个错误!

输出:

  C1 C2         l
0  1  3 [5, 9, 1]
1  7  1 [7, 1, 6]

你可以试试

df['l'] = df['l'].apply(lambda lst: list(map(int, lst)))
print(df)

   C1  C2          l
0   1   7  [5, 9, 1]
1   3   1  [7, 1, 6]