访问数据框熊猫内的列表

时间:2020-03-25 13:27:53

标签: python pandas list dataframe

我正在使用Python中的PANDAS处理数据帧。我用pandas.read_csv(...)读取了一个csv文件。在此csv文件中,列'possible_stops'包含列表(此列中的每个单元格看起来像:[ ][str0,str1])。

我想用itertuples()遍历行,对于每一行,我想访问'possible_stops'列中的列表。 但是,此列的dtype为object,当我寻找特定单元格的类型(type(row.possible_stops))时,它将返回str。我认为dtype = ..方法中的read_csv与某事有关,但是我不知道该怎么办。

如何将此列内的单元格转换为列表?

非常感谢!

编辑: 产生的df看起来像:

latitude longitude gps_speed possible_stops    
1.05869 1574942547  0.0 [['Bapeaume', 2]]
1.05862 1573910439  0.0 [['Bapeaume', 2]]
1.05862 1573910441  0.0 [['Bapeaume', 2]]
1.05862 1573910443  0.0 [['Bapeaume', 2]]
1.05862 1573910445  0.0 [['Bapeaume', 2]]
1.05862 1573910447  0.0 [['Bapeaume', 2]]

2 个答案:

答案 0 :(得分:1)

Pandas数据框中的列中的项目不可能具有数据类型“列表”。在此处查看数据框列的可能数据类型列表:https://pbpython.com/pandas_dtypes.html

因此,存储在数据框中的类型不是“列表”,而是将列表作为字符串对象插入。 但是,仍然可以使用双for循环在数据框的列表中输入项目。例如打印每个项目:

import pandas as pd

data = {'possible_stops':[['str0', 'str1'], ['str2', 'str3']], 'Age':[[20, 21], [19, 18]]} 
df = pd.DataFrame(data) 
for row in df.itertuples():
    for item in row.possible_stops:
        print(item)

这将在创建的数据集中一一打印名称。

答案 1 :(得分:0)

我找到了一种方法,可以使用ast.literal_eval()

将单元格转换为列表
for row in selection_traces.itertuples():
l=ast.literal_eval(row.possible_stops)

此论坛上的问题已解决...抱歉,谢谢!