Fareler üzerinde MultiIndex içeren bir Pandas DataFrame ürünüm var. Satırları, birden çok ölçüt temelinde dizin düzeylerinden birinin değerine göre nasıl silebilirim? ÖrneğinSatır pandalarını sil Endeks temelli veri mimarisi (birden çok ölçüt) (Python 3.5.1)
, ben endeksinin county
seviyesi NaN tüm satırları silmek ve onu 'D' ve 'G' eşit olduğu zaman da onu silmek istiyor ben
import pandas as pd
df = {'population': [100, 200, 300, 400, 500, 600, 700, 800]}
arrays = [['NJ', 'NJ', 'NY', 'NY', 'CA', 'CA', 'NV', 'NV'],
['A', 'B', None, 'D', 'E', 'F', None, 'G']]
tuples = list(zip(*arrays))
index = pd.MultiIndex.from_tuples(tuples, names=['state', 'county'])
df = pd.DataFrame(df, index=index)
population
state county
NJ A 100
B 200
NY NaN 300
D 400
CA E 500
F 600
NV NaN 700
G 800
olduğunu varsayalım. Başka bir deyişle, bir DataFrame
population
state county
NJ A 100
B 200
D 400
CA E 500
F 600
eser Yani şu tür ile bitirmek istiyorum:
df = df.iloc[df.index.get_level_values('county') != 'D']
df = df.iloc[df.index.get_level_values('county') != 'G']
Ama sorun benim gerçek kullanım durumunda bu ölçütlerin birkaç olmasıdır. Ayrıca, bu yöntemi kullanarak NaN'leri silmek için bir yol bulamıyorum.
Teşekkürler!