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]
我有一个数据框,其中的列将数字列表作为字符串:
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]