首页 > 解决方案 > 在python中以列表形式读取数据?

问题描述

     x       y
[133,28,23] female
[157,22,87] male
[160,33,77] male
[122,87,20] female
[120,22,20] female

这是我 book.csv 文件中的数据。

>>fd=pandas.read_csv("C://users/admin/Desktop/Book1.csv")
>>l1=[h for h in fd.x]

执行以下命令后,l1存储此值:

['[133,28,23]', '[157,22,87]', '[160,33,77]', '[122,87,20]', '[120,22,20]']

以下输出是列表格式的字符串,但我想要这样的嵌套列表:

[[133,28,23],[157,22,87],[160,33,77],[122,87,20],[120,22,20]]

我需要做哪些改变?

标签: pythonpandaslistcsv

解决方案


您可以使用ast.literal_eval执行以下操作:

import pandas as pd
import ast

data = [['[133,28,23]', 'female'],
        ['[157,22,87]', 'male'],
        ['[160,33,77]', 'male'],
        ['[122,87,20]', 'female'],
        ['[120,22,20]', 'female']]

df = pd.DataFrame(data=data, columns=['x', 'y'])
df['x'] = df['x'].apply(ast.literal_eval)
result = df['x'].tolist()

print(result)

输出

[[133, 28, 23], [157, 22, 87], [160, 33, 77], [122, 87, 20], [120, 22, 20]]

推荐阅读