python - 无法从 CSV 文件中获取特定列
问题描述
我正在尝试访问 CSV 文件的内容并对其进行解析。我只需要整个 CSV 文件中的两列。我可以访问 CSV 及其内容,但我需要将其限制为我需要的列,以便我可以使用这些列中的详细信息
import os
import boto3
import pandas as pd
import sys
from io import StringIO # Python 3.x
session = boto3.session.Session(profile_name="rli-prod",region_name="us-east-1")
client = session.client("s3")
bucket_name = 'bucketname'
object_key = 'XX/YY/ZZ.csv'
csv_obj = client.get_object(Bucket=bucket_name, Key=object_key)
body = csv_obj['Body']
csv_string = body.read().decode('utf-8-sig')
df = pd.read_csv(StringIO(csv_string))
print(df)
现在,我正在获取整个 CSV。下面是输出
0 63a2a854-a136-4bb1-a89b-a4e638b2be14 8128639b-a163-4e8e-b1f8-22e3dcd2b655 ... 123 63a2a854-a136-4bb1-a89b-a4e638b2be14
1 63a2a854-a136-4bb1-a89b-a4e638b2be14 8d6bdc73-f908-45d8-8d8a-c3ac0bee3b29 ... 123 63a2a854-a136-4bb1-a89b-a4e638b2be14
2 63a2a854-a136-4bb1-a89b-a4e638b2be14 1312e6f6-4c5f-4fa5-babd-93a3c0d3b502 ... 234 63a2a854-a136-4bb1-a89b-a4e638b2be14
3 63a2a854-a136-4bb1-a89b-a4e638b2be14 bfec5ccc-4449-401d-9898-9c523b1e1230 ... 456 63a2a854-a136-4bb1-a89b-a4e638b2be14
4 63a2a854-a136-4bb1-a89b-a4e638b2be14 522a72f0-2746-417c-9a59-fae4fb1e07d7 ... 567 63a2a854-a136-4bb1-a89b-a4e638b2be14
[5 rows x 9 columns]
现在,我的 CSV 没有任何标题,所以我唯一的选择是使用列号抓取。但不知道该怎么做?有人可以帮忙吗?
解决方案
选项1:
如果您已经阅读了 csv 并希望在计算中删除其他列。使用要在其中使用的列的索引df.iloc
。
例子:
>>> df #sample dataframe I want to get the first 2 columns only
Artist Count Test
0 The Beatles 4 1
1 Some Artist 2 1
2 Some Artist 2 1
3 The Beatles 4 1
4 The Beatles 4 1
5 The Beatles 4 1
>>> df3 = df.iloc[:,[0,1]]
>>> df3
Artist Count
0 The Beatles 4
1 Some Artist 2
2 Some Artist 2
3 The Beatles 4
4 The Beatles 4
5 The Beatles 4
选项 2
在读取文件本身的过程中,在 的参数下指定要使用哪些usecols
列read_csv()
。
df = pd.read_csv(StringIO(csv_string), usecols = [place column index here])
推荐阅读
- ios - 如何计算从 xcode tableView 中选择的值
- ios - UICollectionview 中的水平和垂直分隔线
- sql - 如果条件满足则加入表,否则不执行连接
- kubernetes - 将 Kubernetes 上的 zookeeper 数据迁移到新存储
- java - java.lang.AssertionError:未设置内容类型 - Spring Test 和 Mockito
- docker - Docker容器内的Conda构建失败
- php - LARAVEL 删除方法无法正常工作
- llvm - LLVM opt 工具不会对由 clang -O0 生成的 IR 进行矢量化
- javascript - 需要一个用于压缩文件夹的 JavaScript 简单代码
- monaco-editor - 有没有办法从摩纳哥编辑器的标记小部件中隐藏“偷看问题”链接?