python - Pandas read_csv 导入具有多个值的列作为列表
问题描述
我有一个 .csv 文件,其中包含几列,其中一列包含多个值:
"column1";"column2";"column3";
some_string; 1 ; 1,2,3,4 ;
现在,我想使用 pandas read_csv 导入文件:
import pandas as pd
df = pd.read_csv('file.csv', sep=';')
这显然会导致多个值作为单个字符串对象导入的问题。有什么方法可以将这些值作为列表或数组导入,甚至可以在该单元格中调用单个值?那将非常有帮助!
先感谢您!
解决方案
您可以在加载数据后执行此操作,您需要一个lambda
函数:
df['column3'] = df['column3'].apply(lambda x: str(x).split(","))
检查单元格的类型,这给出了列表:
type(df.iloc[0,2])
检查长度,这是4:
len(df.iloc[0,2])
在列表中选择一个元素:
df.iloc[0,2][0]
将列表元素转换为整数:
df['column3'] = df['column3'].apply(lambda x: list(map(int, x)))
检查类型:
type(df.iloc[0,2][0])
推荐阅读
- c++ - 为什么我们在这里创建了两个 pq?
- node.js - 从静态网站生成的预签名 URL 读取时访问被拒绝
- android - AsyncTask 不返回值
- gzip - 在 hapijs 中压缩缓冲区并发送给客户端
- sublimetext3 - 如何通过命令行将 package.Json 文件添加到我们项目的 sublime text 目录中?
- r - 循环以便提取数据然后计算平均值
- sql - 平均的 SQL 子查询
- docker - 如何在安装了 Docker Enterprise Edition (EE) 的 Windows Server 2019 机器上安装 Docker Compose?
- python - 按小时递增开始日期,直到到达结束日期
- c# - .Net Core - 使用任何 dotnet 命令会产生数千行输出并需要几分钟才能运行