gpt4 book ai didi

python - 过滤数据框并根据给定条件添加新列

转载 作者:太空狗 更新时间:2023-10-29 17:23:47 25 4
gpt4 key购买 nike

我有这样一个数据框

ID      col1           col2 
1 Abc street 2017-07-27
1 None 2017-08-17
1 Def street 2018-07-15
1 None 2018-08-13
2 fbg street 2018-01-07
2 None 2018-08-12
2 trf street 2019-01-15

我想过滤掉 col1 中的所有“无”并将相应的 col2 值添加到新列 col3 中。我的输出看起来像这样

ID      col1           col2              col3 
1 Abc street 2017-07-27 2017-08-17
1 Def street 2018-07-15 2018-08-13
2 fbg street 2018-01-07 2018-08-12
2 trf street 2019-01-15

谁能帮我实现这个。

最佳答案

今日版的 Over Engineered with Numpy

虽然不可否认非常明显的 Numpy

i, rows = pd.factorize([*zip(df.ID, df.col1.replace('None'))])
k, cols = pd.factorize(df.groupby(i).cumcount())

dleft = pd.DataFrame(dict(zip(['ID', 'col1'], zip(*rows))))
drigt = pd.DataFrame(index=dleft.index, columns=np.arange(len(cols)) + 2).add_prefix('col')
drigt.values[i, k] = df.col2.values

dleft.join(drigt)

ID col1 col2 col3
0 1 Abc street 2017-07-27 2017-08-17
1 1 Def street 2018-07-15 2018-08-13
2 2 fbg street 2018-01-07 2018-08-12
3 2 trf street 2019-01-15 NaN

关于python - 过滤数据框并根据给定条件添加新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56117560/

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