Apakah ada cara untuk memeriksa apakah ada kolom di DataFrame Pandas?
Misalkan saya memiliki DataFrame berikut:
>>> import pandas as pd
>>> from random import randint
>>> df = pd.DataFrame({'A': [randint(1, 9) for x in xrange(10)],
'B': [randint(1, 9)*10 for x in xrange(10)],
'C': [randint(1, 9)*100 for x in xrange(10)]})
>>> df
A B C
0 3 40 100
1 6 30 200
2 7 70 800
3 3 50 200
4 7 50 400
5 4 10 400
6 3 70 500
7 8 30 200
8 3 40 800
9 6 60 200
dan saya ingin menghitung df['sum'] = df['A'] + df['C']
Tetapi pertama-tama saya ingin memeriksa apakah df['A']
ada, dan jika tidak, saya ingin menghitung df['sum'] = df['B'] + df['C']
.
if not 'A' in df.columns:
untuk menjalankan operasi jikaA
tidak ada didf
Untuk memeriksa apakah ada satu atau beberapa kolom, Anda dapat menggunakan
set.issubset
, seperti pada:Seperti yang ditunjukkan @brianpck dalam komentar,
set([])
dapat juga dibuat dengan kurung kurawal,Lihat pertanyaan ini untuk diskusi tentang sintaks-kurung kurawal.
Atau, Anda dapat menggunakan pemahaman daftar, seperti pada:
sumber
{'A', 'B'}.issubset()
Hanya untuk menyarankan cara lain tanpa menggunakan pernyataan if, Anda dapat menggunakan
get()
metode untukDataFrame
s. Untuk melakukan penjumlahan berdasarkan pertanyaan:The
DataFrame
Metode get memiliki perilaku yang sama seperti kamus python.sumber