python - pandas.read_csv 将列名移动到一个之上

标签 python csv pandas

我正在使用位于 here 的 ALL.zip 文件.我的目标是用它创建一个 pandas DataFrame。但是,如果我运行

data=pd.read_csv(foo.csv)

列名不匹配。第一列没有名称,然后第二列标有第一列,最后一列是 NaN 的 Series。所以我尝试了

colnames=[list of colnames]
data=pd.read_csv(foo.csv, names=colnames, header=False)

这给了我完全相同的东西,所以我跑了

data=pd.read_csv(foo.csv, names=colnames)

它完美地排列了列名,但 csv 分配的列名(csv 文档中的第一行)与它的第一行数据完美对齐。所以我跑了

data=data[1:]

成功了。

所以我找到了一个没有解决实际问题的变通方法。我看着 read_csv文档,发现它有点让人不知所措,并且无法找到仅使用 pd.read_csv 来解决此问题的方法。

根本问题是什么(我假设是用户错误或文件问题)?有没有办法使用 read_csv 中的命令之一修复它?

这是 csv 文件的前两行

cmte_id,cand_id,cand_nm,contbr_nm,contbr_city,contbr_st,contbr_zip,contbr_employer,contbr_occupation,contb_receipt_amt,contb_receipt_dt,receipt_desc,memo_cd,memo_text,form_tp,file_num,tran_id,election_tp
C00458844,"P60006723","Rubio, Marco","HEFFERNAN, MICHAEL","APO","AE","090960009","INFORMATION REQUESTED PER BEST EFFORTS","INFORMATION REQUESTED PER BEST EFFORTS",210,27-JUN-15,"","","","SA17A","1015697","SA17.796904","P2016",

最佳答案

您遇到问题的不是列,而是索引

import pandas as pd

df = pd.read_csv('P00000001-ALL.csv', index_col=False, low_memory=False)

print(df.head(1))

     cmte_id    cand_id       cand_nm           contbr_nm contbr_city  \
0  C00458844  P60006723  Rubio, Marco  HEFFERNAN, MICHAEL         APO   

  contbr_st contbr_zip                         contbr_employer  \
0        AE  090960009  INFORMATION REQUESTED PER BEST EFFORTS   

                        contbr_occupation  contb_receipt_amt contb_receipt_dt  \
0  INFORMATION REQUESTED PER BEST EFFORTS                210        27-JUN-15   

  receipt_desc memo_cd memo_text form_tp  file_num      tran_id election_tp  
0          NaN     NaN       NaN   SA17A   1015697  SA17.796904       P2016  

low_memory=False 是因为第 6 列具有混合数据类型。

关于python - pandas.read_csv 将列名移动到一个之上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32897414/

相关文章:

python - 根据特定日期设置 matplotlib 网格刻度

python - 按列索引 Pandas 数据框重命名列

python - 使用需要在多个级别广播的多索引 Pandas 数据帧执行算术

python - ValueError : Input 0 of layer "max_pooling2d" is incompatible with the layer: expected ndim=4, 发现 ndim=5。收到完整形状 : (None, 3, 51, 39, 32)

python - Python 'build_py' 的步骤 'setup.py install' 中的神秘错误

objective-c - iOS 导出的 CSV 中的货币符号在 Excel 中无法正确显示

PhP上传CSV到MySQL与复杂的决斗NOT EXIST

python - Python下如何隐藏passwd并显示 ' * '

Python:为什么 ("hello"是 "hello")评估为真?

python制表符分隔检索列并删除空行