You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从含75列的CSV文件中提取指定列创建新DataFrame?

解决Pandas提取指定列创建新DataFrame的问题

你当前的代码写法存在两个问题:

  1. pd.DataFrame(df[1], df[3])用法错误,Pandas的DataFrame构造函数第二个参数是索引,这会导致df[3]被当成新DataFrame的索引,而非要保留的列。
  2. 直接用数字df[1]取列仅当列名是数字时有效,若你的CSV有表头(默认情况),这样会因找不到对应列名报错。

正确实现方法

方法一:按列位置提取(iloc)

利用iloc按位置索引提取(位置从0开始,第2列对应索引1,第4列对应索引3):

import pandas as pd

df = pd.read_csv(r'C:\Users\krist\OneDrive\Área de Trabalho\Programação\Python\NFe_E_V3_00626708_20220801_20220830.csv', encoding='latin1', sep=';')
# 提取第2列和第4列
dfreduz = df.iloc[:, [1, 3]]
print(dfreduz)

方法二:按列名提取(更直观)

如果你知道目标列的具体名称,直接传入列名列表即可:

# 替换为你实际需要的列名,比如['Nome', 'Valor']
dfreduz = df[['列名1', '列名2']]

特殊情况:CSV无表头

如果你的CSV文件没有表头,需在read_csv中添加header=None,此时列名会自动设为0、1、2...,直接用数字索引取列就会生效:

df = pd.read_csv(r'你的文件路径', encoding='latin1', sep=';', header=None)
dfreduz = df[[1, 3]]

内容的提问来源于stack exchange,提问作者Kristen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 06:30:51