首页 > 解决方案 > 无法从 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 没有任何标题,所以我唯一的选择是使用列号抓取。但不知道该怎么做?有人可以帮忙吗?

标签: pythonpython-3.xpandas

解决方案


选项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

在读取文件本身的过程中,在 的参数下指定要使用哪些usecolsread_csv()

df = pd.read_csv(StringIO(csv_string), usecols = [place column index here])


推荐阅读