Python Pandas Drop 数据框

新手上路,请多包涵

如何从 DataFrame 中删除列?我知道此数据不可重现,因为我有一个 CSV 文件,并且我正在尝试构建一个 pandas 数据框来进行一些争论。

 import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.read_csv('C:\LoadProfiles\CSV\WillBaySchl 2013_2014 KW.csv')

print(df)

这将返回头部/尾部和: [34944 rows x 3 columns]

 pos0 = 0
pos1 = 1
pos2 = 2

colname = df.columns[pos0]
print(colname)

这将返回: Meter ID (我想删除此列/数据框)

 colname = df.columns[pos1]
print(colname)

这将返回: Date / Time (我希望这是 pd 数据帧索引)

 colname = df.columns[pos2]
print(colname)

这将返回: KW(ch: 1 set:0) (这是我想重命名为“kW”并进行一些争论的数据……)

如果我尝试下面的代码:

 df = pd.DataFrame.drop(['Meter ID'], axis=1)

print(df)

Python 将返回错误: TypeError: drop() missing 1 required positional argument: 'labels'

如果我尝试下面的代码:

 df = pd.DataFrame.drop(columns=['Meter ID'])
print(df)

Python 将返回错误: TypeError: drop() got an unexpected keyword argument 'columns'

任何帮助是极大的赞赏…

原文由 bbartling 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 877
2 个回答

如果我理解删除列(单个)的权利,您应该使用:

 df = pd.DataFrame.drop('Meter ID', axis=1)

对于超过 1 列:

 df = pd.DataFrame.drop(['Meter ID', 'abc'], axis=1)

差异在 [] 括号中。

要删除整个 df,您可以使用(如前所述):

 del df

或者

df = None

原文由 avchauzov 发布,翻译遵循 CC BY-SA 3.0 许可协议

阅读您的问题后,我了解到您想要删除列 ['Meter ID'] 在您的 df = pd.read_csv('C:\LoadProfiles\CSV\WillBaySchl 2013_2014 KW.csv') pandas 数据框中可用。我假设你有列名 ['Meter ID'] 就像你的数据框中的这些一样,也像你的 csv 文件中的标题一样。

 >>> df.dtypes
Meter ID           int64
someothercolumn    int64
dtype: object

为此,您可以简单地使用这些代码,

 del df['Meter ID']

现在如果你想删除整个数据框,你可以简单地使用这些代码,

 df=None

原文由 Shubham Sharma 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题