我正在尝试组合数据帧的列,如下所示
df['new'] = df['a'].astype(str) + ':' + df.b.astype(str) + ' ' + df.c.astype(str)当名为a/b/c的列中的某些条目为空时,它会给出
df['new']=
sfg nan nan
nan nan nan我想知道如何避免nan的问题。相反,我更喜欢把它留空。
我们将非常感谢您的建议。
发布于 2020-12-18 13:59:23
只有fillna()会帮你
df = df.fillna('')
df['new'] = df['a'].astype(str) + ':' + df.b.astype(str) + ' ' + df.c.astype(str)发布于 2020-12-18 13:59:46
您可以围绕连接创建一个常规函数
import pandas as pd
def concat_columns(inp,delimiter=':'):
try:
res = f'{delimiter}'.join(inp.values)
except Exception:
return ' '
return resdf['new'] = df[['a','b','c']].apply(concat_columns,axis=1)发布于 2020-12-18 13:56:19
您可以尝试替换nan字符串。另外,使用apply可以让代码更简洁一些:
df['new'] = (df[['a','b','c']].astype(str)
.replace('nan', '')
.apply(lambda x: x['a'] + ':' + x['b'] + ' ' + x['c'],
axis=1)
)https://stackoverflow.com/questions/65352366
复制相似问题