首页 > 解决方案 > 将两列熊猫数据框合并为一个字符串

问题描述

我有以下数据框

import pandas as pd
import numpy as np

df = pd.DataFrame(data=[['yes',8],['yes',7],['no',np.nan],['yes',7],['no',np.nan]],columns=['passed','score'])

Out[8]: 
  passed  score
0    yes    8.0
1    yes    7.0
2     no    NaN
3    yes    7.0
4     no    NaN

我想将传递的列和得分合并为一列,如下所示

Out[10]: 
  passed
0  yes_8
1  yes_7
2     no
3  yes_7
4     no

我的尝试是df["passed"].map(str) + '_' + df["score"].map(str),但它不像我想要的那样干净,你能帮我吗?

标签: pythonpandasdataframe

解决方案


你可以这样做:

df['passed'] = (df['passed'] + '_' + df['score'].fillna('').astype(str)).str.rstrip('_')

输出:

    passed  score
0  yes_8.0    8.0
1  yes_7.0    7.0
2       no    NaN
3  yes_7.0    7.0
4       no    NaN

推荐阅读