gpt4 book ai didi

python - 根据其他列上的某些条件更新 dask 数据框中列的值

转载 作者:行者123 更新时间:2023-12-01 08:25:11 25 4
gpt4 key购买 nike

我们有一个非常大的 CSV 文件,已作为 dask 数据框导入。我举一个小例子来解释这个问题。

import dask.dataframe as dd
df = dd.read_csv("name and path of the file.csv")
df.head()

输出

col1 | col2 | col3 | col4 
22 | Nan | 23 | 56
12 | 54 | 22 | 36
48 | Nan | 2 | 45
76 | 32 | 13 | 6
23 | Nan | 43 | 8
67 | 54 | 56 | 64
16 | 32 | 32 | 6
3 | 54 | 64 | 8
67 | NaN | 23 | 64

我想替换 col4 的值与 col1如果col4<col1col2不是NaN

所以结果应该是

col1| col2  | col3 | col4 
22 | Nan | 23 | 56
12 | 54 | 22 | 36
48 | Nan | 2 | 45
76 | 32 | 13 | 76
23 | Nan | 43 | 8
67 | 54 | 56 | 67
16 | 32 | 32 | 16
3 | 54 | 64 | 8
67 | NaN | 23 | 64

我知道如何在 pandas 上做到这一点:

condition= df[(df['col4'] < df['col1']) & (pd.notnull(df['col2']))].index

df.loc[condition,'col4'] = df.loc[condition, 'col1'].values

最佳答案

我认为你需要:

condition = (df['col4'] < df['col1']) & (pd.notnull(df['col2']))
df.loc[condition,'col4'] = df.loc[condition, 'col1']

或者dask.dataframe.Series.mask :

df['col4'] = df['col4'].mask(condition, df['col1'])

print (df)
col1 col2 col3 col4
0 22 NaN 23 56
1 12 54.0 22 36
2 48 NaN 2 45
3 76 32.0 13 76
4 23 NaN 43 8
5 67 54.0 56 67
6 16 32.0 32 16
7 3 54.0 64 8
8 67 NaN 23 64

关于python - 根据其他列上的某些条件更新 dask 数据框中列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54302694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com