首页 > 解决方案 > Pandas read_csv:列被导入为行

问题描述

编辑:我相信这都是用户错误。我一直在df.T默认输入,我突然想到这很可能是 TRANSPOSE 输出。通过键入df,数据框正常输出(标题作为列)。感谢那些站出来尝试和帮助的人。最后只是我对pandas语言的误解。。

原帖

我不确定我是否犯了一个简单的错误,但是 .csv 文件中的列正在使用 .csv 文件作为行导入pd.read_csv。数据框原来是 5 行乘 2000 列。我只导入了 14 列中的 5 列,所以我设置了一个列表来保存我想要的列的名称。它们与 .csv 文件中的完全匹配。我在这里做错了什么?

import os
import numpy as np
import pandas as pd

fp = 'C:/Users/my/file/path'
os.chdir(fp)

cols_to_use = ['VCOMPNO_CURRENT', 'MEASUREMENT_DATETIME',
               'EQUIPMENT_NUMBER', 'AXLE', 'POSITION']

df = pd.read_csv('measurement_file.csv',
                 usecols=cols_to_use,
                 dtype={'EQUIPMENT_NUMBER': np.int,
                        'AXLE': np.int},
                 parse_dates=[2],
                 infer_datetime_format=True)

输出:

                                    0  ...            2603
VCOMPNO_CURRENT                T92656  ...          T5M247
MEASUREMENT_DATETIME  7/26/2018 13:04  ...  9/21/2019 3:21
EQUIPMENT_NUMBER                  208  ...             537
AXLE                                1  ...               6
POSITION                            L  ...               R

[5 rows x 2000 columns]

谢谢你。

编辑:要注意,如果我使用标准导入整个 .csv pd.read_csv('measurement_file.csv'),则列会正确导入。

编辑 2:样本 csv:

VCOMPNO_CURRENT,MEASUREMENT_DATETIME,REPAIR_ORDER_NUMBER,EQUIPMENT_NUMBER,AXLE,POSITION,FLANGE_THICKNESS,FLANGE_HEIGHT,FLANGE_SLOPE,DIAMETER,RO_NUMBER_SRC,CL,VCOMPNO_AT_MEAS,VCOMPNO_SRC
T92656,10/19/2018 7:11,5653054,208,1,L,26.59,27.34,6.52,691.3,OPTIMESS_DATA,2MTA ,T71614 ,RO_EQUIP     
T92656,10/19/2018 7:11,5653054,208,1,R,26.78,27.25,6.64,691.5,OPTIMESS_DATA,2MTA ,T71614 ,RO_EQUIP     
T92656,10/19/2018 7:11,5653054,208,2,L,26.6,27.13,6.49,691.5,OPTIMESS_DATA,2MTA ,T71614 ,RO_EQUIP     
T92656,10/19/2018 7:11,5653054,208,2,R,26.61,27.45,6.75,691.6,OPTIMESS_DATA,2MTA ,T71614 ,RO_EQUIP     
T7L672,10/19/2018 7:11,5653054,208,3,L,26.58,27.14,6.58,644.4,OPTIMESS_DATA,2CTC ,T7L672 ,BOTH         
T7L672,10/19/2018 7:11,5653054,208,3,R,26.21,27.44,6.17,644.5,OPTIMESS_DATA,2CTC ,T7L672 ,BOTH             

标签: pythonpython-3.xpandascsvimport

解决方案


这里一个简单的解决方法是只对数据帧进行转置。 熊猫文档链接

df = pd.DataFrame.transpose(df)

推荐阅读