python - 将带有元素列表的 csv 文件读入 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]
其中每个单元格(例如 A,ind1)都有一个列表 [1,2,3]。当我将其导入数据框时:
df=pd.read_csv('filename.csv')
我得到一个与 csv 格式相同的数据框,但是,单个单元格中的列表作为字符串导入。
假设我索引 ind1 列 A 的第一个元素
df.iloc[0]['A']
给我'['
而不是1
基本上它是[1,2,3]
作为一个长字符串读取而不是作为一个列表读取。
如何将所有单元格中的值转换为列表?
解决方案
有趣的问题。如果您将使用 pandas,我将首先使用 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)
现在,您已经提取了列表,您可以像处理普通列表一样对它们做出反应。例如,这将从第一个列表中为您提供第一个元素:
df.iloc[0]['A'][0]
我希望这会帮助你
推荐阅读
- php - 当我从 php 中的查询生成器循环时出现错误
- go - Go Timer 停止时死锁
- json - 从 Flutter 中的 Json 错误解析 DateTime
- javascript - 根据 GPS 位置之间的距离过滤对象数组(javascript)
- sql - 巩固我的年和月以获得每个客户、每个月、每年的总数量的方法
- java - Kafka Streams KStream 转换
- vba - 有没有办法在 VBE 窗口处于活动状态时定义快捷键(例如 Ctrl-Y)来启动 VBA 子/宏?
- git - subtree-remote 的 git push 推送了整个 repo,如何撤消?
- android - “CameraDevice”不包含“CameraDirection”的定义
- google-data-studio - 将数据拉入过滤器或新字段