[英]How to apply UDF to dataframe?
我正在嘗試創建一個函數,該函數將清理和放置通過該函數的數據框。 但是我注意到返回的df已清理,但不能代替原始df。
如何在數據框上運行UDF並將更新的數據框保存在適當的位置?
ps我知道我可以將這些規則合並為一行,但是我創建的函數要復雜得多,所以我不想在此示例中合並
df = pd.DataFrame({'Key': ['3', '9', '9', '9', '9','34','34', '34'],
'LastFour': ['2290', '0087', 'M433','M433','25','25','25','25'],
'NUM': [20120528, 20120507, 20120615,20120629,20120621,20120305,20120506,20120506]})
def cleaner(x):
x = x[x['Key'] == '9']
x = x[x['LastFour'] == 'M433']
x = x[x['NUM'] == 20120615]
return x
cleaner(df)
UDF的結果:
Key LastFour NUM
2 9 M433 20120615
但是,如果我在函數之后運行df,那么我仍然可以獲得原始數據集:
Key LastFour NUM
0 3 2290 20120528
1 9 0087 20120507
2 9 M433 20120615
3 9 M433 20120629
4 9 25 20120621
5 34 25 20120305
6 34 25 20120506
7 34 25 20120506
您需要按以下方式將cleaner(df)
的結果分配回df
:
df = cleaner(df)
另一種方法是使用pd.DataFrame.pipe
通過函數傳遞數據pd.DataFrame.pipe
:
df = df.pipe(cleaner)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.