簡體   English   中英

如何將UDF應用於數據框?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM