kdb*_*dba 5 python csv dataframe pandas
我有以下格式的CSV文件:
index A B C
ind1 [1,2,3][3,4,5][6,7,8]
ind2 [1,4,3,4,8][9,1,2,1,4][3,7,3,5,9]
ind3 [2,8][1,8][1,5]
Run Code Online (Sandbox Code Playgroud)
每个单元格(例如A,ind1)都有一个列表[1,2,3]。当我将其导入数据框时:
df=pd.read_csv('filename.csv')
Run Code Online (Sandbox Code Playgroud)
我得到的格式与csv相同的数据框,但是,单个单元格中的列表作为字符串导入。
说我索引ind1列A的第一个元素
df.iloc[0]['A']
给我'['
而不是1
基本上,它是[1,2,3]
作为一个长字符串读取而不是作为列表读取。
如何将所有单元格中的值转换为列表?
有趣的问题。如果您将使用熊猫,我将首先使用literal_eval 对列表进行编码。
import pandas as pd
from ast import literal_eval
df = pd.read_csv("filename.csv")
您可以使用 pandas applymap 将literal_eval函数应用于每个单元格。
df[['A', 'B', 'C']] = df[['A', 'B', 'C']].applymap(literal_eval)
Run Code Online (Sandbox Code Playgroud)
现在,您已经提取了列表,您可以像普通列表一样对它们做出反应。例如,这将从第一个列表中为您提供第一个元素:
df.iloc[0]['A'][0]
Run Code Online (Sandbox Code Playgroud)
我希望这会帮助你
归档时间: |
|
查看次数: |
2140 次 |
最近记录: |