[英]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'])
不要使用字符串參數作為列名,而是使用引用要刪除的列名的字符串列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.