[英]How do you apply a function on a dataframe column using data from previous rows?
[英]How do you apply a function to a dataframe column
races = pd.read_csv("C:/Users/Sam/Documents/races.csv")
df_races = pd.DataFrame(races)
df_races = df_races[["raceId", "year", "name"]]
df_races = df_races.sort_values(by=['year'])
df_races = df_races[df_races['name'] == 'Australian Grand Prix']
# Australian Grand Prix 'Find Qualifying Data'
QLF = pd.read_csv("C:/Users/Sam/Documents/qualifying.csv")
df_QLF = pd.DataFrame(QLF)
df_QLF = df_QLF[["raceId", "position", "q1", "q2", "q3"]]
Race_Id_1 = df_races['raceId'].tolist()
# Filter Rows
df_QLF['Match'] = df_QLF["raceId"].isin(Race_Id_1)
def Find_Rid(row):
if row['Match'] == 'True':
return row
df_QLF = df_QLF.apply(Find_Rid, axis=1)
print(df_QLF)
一旦我运行这一切,我得到以下输出,实际上我想要的是当 df_QLF['Match'] column == 'True' 保留这些行并丢弃所有其他行
0 None
1 None
2 None
3 None
.... ....
我不明白为什么。
df_QLF = df_QLF.loc[df_QLF['Match'] == True]
以下代码对我有用。 在 python 中, True
和False
是专门为 bool 类保留的常量。 参考:1) https://docs.python.org/2.3/whatsnew/section-bool.html 2) https://www.geeksforgeeks.org/bool-in-python/
def Find_Rid(row):
if row['Match'] == True:
return row
df_QLF_true = df_QLF.apply(Find_Rid, axis=1)
print(df_QLF_true)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.