gpt4 book ai didi

python - DataFrame 有条件地组合列

转载 作者:太空宇宙 更新时间:2023-11-04 08:24:00 25 4
gpt4 key购买 nike

我有一个包含 28 列的 DataFrame。我想有条件地将 2 列组合在一起以创建一个新列,当我操作数据并引入其他数据集时,它将成为我的键。我将不得不在每个数据集中再次创建 key 。

我想将列“CN”和“ON”连接在一起。有时'ON'是空白的或者只有一个空格,所以我需要先修剪它。从逻辑上讲,我正在尝试执行以下操作。

如果 Trim('ON') 为空,则 'CN ON' = 'CN' ELSE 'CN ON' = 'CN'+'-'+'ON'

数据框

   CN  ON    POC
0 W1 Name1
1 Z2 Name3
2 B3 YY Name1
3 W1 A2 Name4

import pandas as pd
df = pd.DataFrame({'CN': ['W1', 'Z2', 'B3', 'W1'],
'ON': ['', ' ', 'YY', 'A2'],
'POC': ['Name1', 'Name3', 'Name1', 'Name4']
})

期望的结果

   CN ON  CN  ON    POC
0 W1 W1 Name1
1 Z2 Z2 Name3
2 B3-YY B3 YY Name1
3 W1-A2 W1 A2 Name4

import pandas as pd
df = pd.DataFrame({'CN ON': ['W1','Z2','B3-YY','W1-A2'],
'CN': ['W1', 'Z2', 'B3', 'W1'],
'ON': ['', ' ', 'YY', 'A2'],
'POC': ['Name1', 'Name3', 'Name1', 'Name4']
})

我找到了一些类似的问题和答案,但我无法完全解决问题。

这是我目前所拥有的。我无法弄清楚如何修剪和检查该字段是否为空白。它目前无法正常工作,我觉得我碰壁了。

import numpy as np
df['CN ON'] = df.apply(lambda r: (r['CN'] if np.where(df['ON'].applyman(lambda x: x == '')) else r['CN'] + '-' + r['ON'])

如有任何指导或帮助,我们将不胜感激!

最佳答案

我会做字符串求和

(df.CN+ '-' + df.ON).str.strip('- ')
Out[98]:
0 W1
1 Z2
2 B3-YY
3 W1-A2
dtype: object

关于python - DataFrame 有条件地组合列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59081004/

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