başka bir sütun pandaları veri çerçevesine dayalı olarak sütun değerini ayıklayın


109

Bir değişken koşullamanın değerini başka bir değişkene çıkarmak konusunda biraz takılıp kalıyorum. Örneğin, aşağıdaki veri çerçevesi:

A  B
p1 1
p1 2
p3 3
p2 4

Nasıl değerini alabilirsiniz ? Değerini her çıkardığımda, bir dizge değil, bir nesne aldım.AB=3A


Anlıyorum item(), sonuna eklemeliyim .
— Anderson Zhu

df.queryve pd.evalbu kullanım durumu için uygun görünüyor. pd.eval()İşlevler ailesi, özellikleri ve kullanım durumları hakkında bilgi için lütfen pd.eval () kullanarak pandalarda Dinamik İfade Değerlendirmesini ziyaret edin .
— cs95

Yanıtlar:


193

Durumunuzu lockarşılayan serileri almak ve ardından ilocilk öğeyi almak için kullanabilirsiniz:

In [2]: df
Out[2]:
    A  B
0  p1  1
1  p1  2
2  p3  3
3  p2  4

In [3]: df.loc[df['B'] == 3, 'A']
Out[3]:
2    p3
Name: A, dtype: object

In [4]: df.loc[df['B'] == 3, 'A'].iloc[0]
Out[4]: 'p3'

24
Yardımınız için teşekkürler. df.loc[df['B'] == 3, 'A'].item()benim için de çalışıyor.
— Anderson Zhu

3
Veri çerçevesi B sütununda birden fazla '3' girişi varsa hangisini seçer?
— 2018

1
df.loc [df ["Condition_Column"] == 0, ("Sütun_1", "Sütun_2," Sütun_3 "," Sütun_4 ")] benim için çalışıyor. Bu örnek birden çok sütun seçmek içindir. Bunlar tuple içinde olmalıdır.
— Mustafa Uçar

df.loc [df ['B'] == 300, 'A']. iloc [0] çıktının ne olacağı anlamına gelirse?
— user1999109

.item () görünüşe göre kullanımdan kaldırılmış ve kaldırılacak. Bunu yapmanın başka bir yolu var mı? Sorgulamak için .loc yöntemiyle de döndürülen sütun veya veri türünün adıyla ilgilenmiyorum.
— Dan

41

Daha queryaz yazarak deneyebilirsiniz :

df.query('B==3')['A']

Sorgu ilginç çünkü ona daha karmaşık maddeler de ekleyebiliriz
— Samir Baid

1
IMHO, bu en iyi cevap.
— NLR

27

df[df['B']==3]['A'], df'nin pandalarınız olduğunu varsayarak.DataFrame.


Pandaların resmi belgelerinde bu yöntemin tam olarak açıklandığı bir bağlantı verebilir misiniz?
— vasili111

][Kısmen demek istiyorum .
— vasili111

11

df[df['B']==3]['A'].valuesParantez olmadan sadece öğenin kendisini istiyorsanız kullanın


Pandaların resmi belgelerinde bu yöntemin tam olarak açıklandığı bir bağlantı verebilir misiniz? ][Kısmen demek istiyorum .
— vasili111


Değere [0]erişmek için yine de sonuna koymanız gerekiyor .
— rubebop

0
male_avgtip=(tips_data.loc[tips_data['sex'] == 'Male', 'tip']).mean()

Görevim için bu madde çıkarma ve çıkarma işlemleri üzerinde de çalıştım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.