簡體   English   中英

python dataframe pandas 使用列名刪除多個列

[英]python dataframe pandas drop multiple column using column name

我知道要刪除您使用的列df.drop('column name', axis=1, inplace =True)

文件格式為.csv文件

我想以穩健的方式將上述語法用於大型數據集和更多

假設我有 500 列,我想使用列名而不是索引來保留第 100 到 140 列,並且 rest 想要刪除,我將如何編寫上述語法以便實現我的目標以及 100 到 140 列,我想要按列名刪除第 105、108,110 列

df = df.loc[:, 'col_100_name' : 'col_140_name']

.loc始終選擇使用兩端(包括兩端)。 在這里,我選擇所有行,並且只選擇您想要 select 的列(按名稱)。

在此之后(或之前 - 沒關系),您可以像往常一樣按名稱刪除其他列:

df.drop(['col_105_name', 'col_108_name', 'col_110_name'], axis=1, inplace=True)

如果您希望使用切片和顯式列名的組合來 select 列:

cols_in_the_slice = df.loc[:, 'col_100_name' : 'col_140_name'].columns
other_cols = pd.Index(['col_02_name', 'col_04_name'])
all_cols = other_cols.union(cols_in_the_slice , sort=False)

df = df[all_cols]

Union 將cols_in_the_slice的新(尚未遇到)元素附加到other_cols的末尾。 它默認排序,所以我指定sort=False不排序。 然后我們選擇所有這些列。

順便說一句,您還可以在此處刪除您不希望擁有的列名。

如果您知道列名,則可以使用.drop ,如果您知道它們在此索引中的位置,則可以使用.delete

cols_in_the_slice = cols_in_the_slice.drop(['col_105_name', 'col_108_name', 'col_110_name'])

我還建議查看Pandas User Guide on Indexing and selection data

不要使用字符串參數作為列名,而是使用引用要刪除的列名的字符串列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM