Saya memiliki tampilan data seperti ini:
import pandas
import numpy as np
df = DataFrame(np.random.rand(4,4), columns = list('abcd'))
df
a b c d
0 0.418762 0.042369 0.869203 0.972314
1 0.991058 0.510228 0.594784 0.534366
2 0.407472 0.259811 0.396664 0.894202
3 0.726168 0.139531 0.324932 0.906575
Bagaimana saya bisa mendapatkan semua kolom kecuali column b
?
Jawaban:
Ketika kolom bukan MultiIndex,
df.columns
hanya array nama kolom sehingga Anda dapat melakukannya:sumber
drop
adalah IMO yang lebih baik. Sedikit lebih mudah dibaca dan menangani multiindexdrop
lebih baik - saya pikir itu berguna untuk menemukan bahwa kolom (level tunggal) adalah array yang dapat Anda gunakan, tetapi khusus untuk menjatuhkan kolom,drop
sangat mudah dibaca dan bekerja dengan baik dengan indeks kompleks.Jangan gunakan
ix
. Sudah usang . Cara yang paling mudah dibaca dan idiomatis untuk melakukan ini adalahdf.drop()
:Perhatikan bahwa secara default,
.drop()
tidak beroperasi di tempat; meskipun nama yang menyenangkan,df
tidak terluka oleh proses ini. Jika Anda ingin menghapus secara permanenb
daridf
, lakukandf.drop('b', inplace=True)
.df.drop()
juga menerima daftar label, misalnyadf.drop(['a', 'b'], axis=1)
akan turun koloma
danb
.sumber
df.drop([('l1name', 'l2name'), 'anotherl1name'], axis=1)
. Tampaknya menggunakan daftar vs tupel untuk menentukan apakah Anda ingin beberapa kolom (daftar) atau merujuk ke multiindex (tupel).df.drop(columns='a')
ataudf.drop(columns=['a', 'b'])
. Bisa juga ganticolumns=
denganindex=
.sumber
sort=False
jika Anda ingin menghindari perilaku itu (df.columns.difference(['b'], sort=False)
)Kamu bisa memakai
df.columns.isin()
Saat Anda ingin menjatuhkan beberapa kolom, sesederhana:
sumber
Ini cara lain:
Anda hanya melewati semua kolom yang akan ditampilkan kecuali yang tidak Anda inginkan.
sumber
Sedikit modifikasi ke @Salvador Dali memungkinkan daftar kolom untuk dikecualikan:
atau
sumber
Saya pikir cara terbaik untuk dilakukan adalah cara yang disebutkan oleh @Salvador Dali. Bukannya yang lain salah.
Karena ketika Anda memiliki kumpulan data di mana Anda hanya ingin memilih satu kolom dan memasukkannya ke dalam satu variabel dan sisanya dari kolom ke yang lain untuk tujuan perbandingan atau komputasi. Kemudian menjatuhkan kolom set data mungkin tidak membantu. Tentu saja ada kasus penggunaan untuk itu juga.
Kemudian Anda dapat menempatkan kumpulan kolom dalam variabel
x_cols
ke variabel lain sepertix_cols1
untuk perhitungan lainnya.sumber
Berikut ini adalah lambda satu baris:
sebelum :
setelah :
sumber