删除DataFrame中的列时,我使用:
del df['column_name']
Run Code Online (Sandbox Code Playgroud)
这很有效.为什么我不能使用以下?
del df.column_name
Run Code Online (Sandbox Code Playgroud)
由于您可以访问列/系列df.column_name,我希望这可以工作.
我有一个带有以下列名的pandas数据帧:
Result1,Test1,Result2,Test2,Result3,Test3等......
我想删除名称中包含单词"Test"的所有列.这些列的数量不是静态的,而是取决于先前的函数.
我怎样才能做到这一点?
我试图通过以下代码在pandas数据框中删除索引号的多列(我的数据集中的第2列和第70列,分别索引为1和69):
df.drop([df.columns[[1, 69]]], axis=1, inplace=True)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
TypeError: unhashable type: 'Index'
Run Code Online (Sandbox Code Playgroud)
在我的代码中,[1,69]突出显示并说:
Expected type 'Integral', got 'list[int]' instead
Run Code Online (Sandbox Code Playgroud)
下面的代码执行我想要它成功完成的操作,但是在两行重复代码上(首先删除col索引69,然后是1,并且顺序很重要,因为删除先前的列会更改后面列的索引).我以为我可以简单地将多个列索引指定为列表,但也许我上面有错误?
df.drop([df.columns[69]], axis=1, inplace=True)
df.drop([df.columns[1]], axis=1, inplace=True)
Run Code Online (Sandbox Code Playgroud)
有没有办法可以在一行上执行此操作,类似于上面的第一个代码片段?
我正在为自学而提出这个问题.据我所知,以下是删除pandas数据帧中列的不同方法.
选项1:
df=pd.DataFrame({'a':[1,2,3,4,5],'b':[6,7,8,9,10],'c':[11,12,13,14,15]})
del df['a']
Run Code Online (Sandbox Code Playgroud)
选项-2:
df=pd.DataFrame({'a':[1,2,3,4,5],'b':[6,7,8,9,10],'c':[11,12,13,14,15]})
df=df.drop('a',1)
Run Code Online (Sandbox Code Playgroud)
选项-3:
df=pd.DataFrame({'a':[1,2,3,4,5],'b':[6,7,8,9,10],'c':[11,12,13,14,15]})
df=df[['b','c']]
Run Code Online (Sandbox Code Playgroud)
我知道如何使用Python从数据框中删除列.但是对于我的问题,数据集很大,我想要删除的列被组合在一起,或者基本上是在列标题轴上单独展开.是否有一种更短的方法来切割或删除所有列的代码行数较少,而不是像我所做的那样将其写出来.我在这里的方式是有效的,但我想要一个更加总结的方式.
flight_data_copy_final是应该存储它的变量.
提前致谢
这是我的代码:
from IPython.display import display
flight_data_copy_version1 = flight_data_copy.drop(flight_data_copy.ix[:,"Year": "FlightDate"].columns, axis=1)
flight_data_copy_version2 = flight_data_copy_version1.drop("TailNum", axis=1)
flight_data_copy_version3 = flight_data_copy_version2.drop("OriginStateFips", axis=1)
flight_data_copy_version4 = flight_data_copy_version3.drop("DestStateFips", axis=1)
flight_data_copy_version5 = flight_data_copy_version4.drop("Diverted", axis=1)
flight_data_copy_version6 = flight_data_copy_version5.drop("Flights", axis=1)
flight_data_copy_final = flight_data_copy.drop(flight_data_copy_version6.ix[:,"FirstDepTime":].columns, axis=1)
print (display (flight_data_copy_final))
Run Code Online (Sandbox Code Playgroud) 我有一个熊猫数据框,它有一些列。如果列表中未显示列,我想删除它们。
熊猫数据框列:
list(pandas_df.columns.values)
Run Code Online (Sandbox Code Playgroud)
结果:
['id', 'name' ,'region', 'city']
Run Code Online (Sandbox Code Playgroud)
和我期望的列名称:
final_table_columns = ['id', 'name', 'year']
Run Code Online (Sandbox Code Playgroud)
经过x次运算的结果应该是:
list(pandas_df.columns.values)
['id', 'name']
Run Code Online (Sandbox Code Playgroud)