[英]Using IF function in Pandas dataframe
我試圖從 csv 數據集中找到 OLDEST FEMALE,但我不知道如何找到。 我對 Python 和 Pandas 很陌生。我顯然不知道如何在這里使用 function。
import pandas as pd
df = pd.read_csv("people.csv", usecols=['gender', 'age'])
我試着用這樣的東西
print(df[df["gender"].isin(["F"])].df.age.max())
或者像這樣
if df[df["gender"].all(["F"])] :
print(df.age.max())
甚至試過這個
print(df.loc[df['gender'] == 'F'].max())
但這是在我發現最老的“M”與最老的“F”年齡相同之前
但仍然不知道如何找到最年長的女性
編輯:我必須從導入的數據集中找到最年長的女性,而不是創建一個。 謝謝你。
編輯 2:抱歉打擾了,我剛剛發現,我的 csv 中最老的 M 和我的 csv 中最老的 F 的年齡相同。這很尷尬
df = pd.DataFrame({'gender':['F', 'M', 'F', 'M','F', 'M'],'age': [12, 33, 43, 22, 18, 16]})
oldest_female = df.loc[df['gender'] == 'F'].max()
print(oldest_female['age'])
你可以試試這個。 首先按gender
分組並獲得最大值。 然后從中獲取女性的age
。
import pandas as pd
df = pd.DataFrame([['F',20],['F',30], ['M',20]], columns=['gender', 'age'])
df = df.groupby('gender').max().reset_index()
print(df[df['gender'] == 'F'].iloc[0]['age'])
Output 在這個例子中是30
在這種情況下,您實際上不需要 if 語句。 見下文:
import numpy as np
import pandas as pd
df = pd.DataFrame({'gender': ['M', 'F', 'F','F','M'],
'age': [99,12,45,98,23]})
# Result
print(df[df['gender'] == 'F']['age'].max())
這應該給你你正在尋找的東西。 另外,不要忘記在 if 語句之后縮進下一行。
要查找數據集中最年長女性的行,您可以將 dataframe 過濾為僅女性,使用 idxmax 查找索引:
df.loc[df.query('gender == "F"')['age'].idxmax()]
這將返回數據集中最大年齡為“F”的第一行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.