【问题标题】:DataFrame not considering column A due to cell A1 is blank [duplicate]由于单元格A1为空白,DataFrame不考虑A列[重复]
【发布时间】:2018-03-11 02:41:48
【问题描述】:

我正在尝试将所有原始数据(csv 文件)导入一个 DataFrame,并且由于原始数据文件有一些无用的行,我喜欢通过“drop”删除它们,但是对于第一列的行是空白单元格。我无法删除它,并且数据框无法识别该列。

这是我的代码:

import pandas as pd
import numpy as np   
import glob
import os

#Determine file path for index weighting files
pathwgt=r'//10.27.36.181/etf/Bill/Quant/AxJ_Weight'
filenames = glob.glob(pathwgt + "/*.csv")

#declare data frame
dfwgt=pd.DataFrame()

#consolidate all files into one data frame
for filename in filenames:
    dfwgt=dfwgt.replace('',np.NaN)
    dfwgt=dfwgt.append(pd.read_csv(filename))

dfwgt=dfwgt.drop(['Symbol','Company'])

现在我在excel中的单元格A1是空白的,B1有一个字符串,我想删除整个第1行。dataFrame形状是[124544行x 6列],它假设是[124544行x 7列]

【问题讨论】:

  • 您能添加数据样本、3-4 行和所需的输出吗?
  • 欢迎来到 SO。记得添加适当的语言标签。
  • 不清楚需要删除列还是行?您不需要删除行。只需选择忽略您不想要的行。
  • 嗨,Jezrael,是的,我可以添加标题,但是由于数据框仅将其视为 6 列,因此我无法添加第一列标题...
  • @BillSun - 你需要pd.read_csv(filename).reset_index() 吗?这真的很难回答,因为数据取决于问题。

标签: python pandas csv glob


【解决方案1】:

您的问题有几个解决方案:

删除行和标题:

pd.read_csv('data.csv', skiprows=1, header=None)

这将创建一个 DataFrame,其列名由数字标识。 (例如来自0 -> 3


删除列:

pd.read_csv('data.csv')

将导致为未命名的列分配名称'Unnamed: 0',您可以通过执行以下操作删除此列:

df = df.drop('Unnamed: 0', axis=1)

更改名称:

pd.read_csv('data.csv')

或者:

df = df.rename(columns={'Unnamed: 0': 'new_name'}

如果上述方法不能解决您的问题,那么我很难理解您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 2022-10-17
    • 1970-01-01
    相关资源
    最近更新 更多