如何将函数应用于数据帧列

2024-10-06 12:28:37 发布

您现在位置:Python中文网/ 问答频道 /正文

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\u QLF['Match']column=='True'来保留这些行并丢弃所有其他行

   0         None
   1         None
   2         None
   3         None
   ....      ....

我不明白为什么


Tags: csvnonedataframedfreadsammatchfind
2条回答
df_QLF = df_QLF.loc[df_QLF['Match'] == True]

下面的代码对我有用。在python中,TrueFalse是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)

相关问题 更多 >