解析熊猫列中的列表

Ali*_*dro 2 python types list pandas

我试图弄清楚如何解析包含列表的 Pandas 列:我的问题是这些被识别为字符串,而我希望它们被视为列表,以遍历它们。

这是我的单元格的示例: [('P105', 1), ('P31', 1), ('P225', 1), ('P70', 1)]

当我尝试遍历它时,我只能一一获取字符串中包含的字符(即 [, (, ', P 等)。如何让大熊猫“理解”这些是列表?

编辑:我找到了一种方法:我适用ast.literal_eval于每一行。

例子:

line = month_statement['properties_claims'][12]
for i in line:
    print i

[
(
'
P
7
6
'
...
Run Code Online (Sandbox Code Playgroud)

如果我使用ast.literal_eval, 代替:

line = ast.literal_eval(month_statement['properties_claims'][12])
line
Out[23]: 
[('P76', 1),
 ('P77', 1),
 ('P75', 1),
 ('P273', 1),
 ('P70', 1),
 ('P107', 1),
 ('P225', 1)]
Run Code Online (Sandbox Code Playgroud)

我现在怀疑这种方法处理数百万行的效率如何。

muo*_*uon 5

很老的问题,但我想这应该有效:

import ast

df['col'].apply(ast.literal_eval)
Run Code Online (Sandbox Code Playgroud)

如果文件太大,则使用例如将数据读入块 pd.read_csv(...,cunksize=50000)