Python Pandas 删除数据框

Posted

技术标签:

【中文标题】Python Pandas 删除数据框【英文标题】:Python Pandas Drop Dataframe 【发布时间】:2018-05-22 03:14:38 【问题描述】:

如何从 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'

非常感谢任何帮助...

【问题讨论】:

您可能有一个 0.21 之前的 pandas,其中引入了 kw 列。检查您的版本并改用labels,再加上axis=1 pd.DataFrame.drop(['Meter ID'], axis=1) 您正在调用 DataFrame 构造函数上的方法,因此它认为第一个位置参数是 self。在实例上使用它(例如df)。 能否重申一下self 的意思?我不明白如何将它与 Pandas 一起使用。谢谢 【参考方案1】:

要丢失“Meter ID”列,您还可以使用:

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

发布熊猫版本 0.21

【讨论】:

【参考方案2】:

要从数据框中删除一列,

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

一次删除多个列,

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

了解更多pandas.DataFrame.drop

【讨论】:

【参考方案3】:

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

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

超过 1 列:

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

差异在 [] 括号中。

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

del df

df = None

【讨论】:

【参考方案4】:

阅读您的问题后,我了解您想删除 ['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

【讨论】:

以上是关于Python Pandas 删除数据框的主要内容,如果未能解决你的问题,请参考以下文章

python [数据框添加或删除列]一些表达式来修改数据框列#Pandas

从整个 Python Pandas 数据框中删除美元符号

python--pandas删除

Python,Pandas,数据框 - 拆分和删除单元格的某些部分

Python Pandas:如何从包含列表中值的数据框中删除所有列?

如果在另一个数据框中确实存在,则删除行 - python pandas