为了账号安全,请及时绑定邮箱和手机立即绑定

将多列合并为一列

将多列合并为一列

慕姐4208626 2022-05-19 18:47:45
假设我有这样的熊猫数据框:import numpy as npimport pandas as pdmy_df = pd.DataFrame(columns=['column 1', 'column 2', 'column 3'], data = [['17.1 g', np.nan, np.nan], [np.nan, '7.0 g', np.nan], [np.nan, '3.7 g', '0.7 g'], [np.nan, np.nan, '1.7 g'], ['1.1 g', np.nan, '1.0 g']])我想要的是:    column1 column2 column3  column_new0    17.1 g    NaN    NaN     17.1 g1     NaN      7.0 g  NaN     7.0 g2     NaN      3.7 g  0.7 g   3.7 g3     NaN      NaN    1.7 g   1.7 g4     1.1 g    NaN    1.0 g   1.1 g我尝试使用apply和join如下但没有得到我希望的输出:my_df['column_new'] = my_df[my_df.columns[0:]].apply(lambda x: ' '.join(x.dropna().astype(str)), axis=1)my_df    column 1    column 2    column 3    column_new0   17.1 g       NaN         NaN        17.1 g1   NaN          7.0 g       NaN        7.0 g2   NaN          3.7 g       0.7 g      3.7 g 0.7 g2   NaN          NaN         1.7 g      1.7 g3   1.1 g        NaN         1.0 g      1.1 g 1.0 g如何通过修改上面的代码获得我想要的输出。预先感谢。编辑:我正在寻找使用上述代码的解决方案来获得预期的输出。尽管使用bfill和逐行的答案中的代码max很好,但它们在我拥有的大数据上效果不佳。
查看完整描述

3 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

我们可以使用bfill


df['New']=df.bfill(axis=1).iloc[:,0]

df

  column 1 column 2 column 3     New

0   17.1 g      NaN      NaN  17.1 g

1      NaN    7.0 g      NaN   7.0 g

2      NaN    3.7 g    0.7 g   3.7 g

3      NaN      NaN    1.7 g   1.7 g

4    1.1 g      NaN    1.0 g   1.1 g


查看完整回答
反对 回复 2022-05-19
?
手掌心

TA贡献1942条经验 获得超3个赞

IIUC,你想要max每行,即使它们不是严格的数字,它似乎至少在提供的数据上运行良好:


my_df['column_new'] = my_df.max(axis=1)

print (my_df)


  column 1 column 2 column 3 column_new

0   17.1 g      NaN      NaN     17.1 g

1      NaN    7.0 g      NaN      7.0 g

2      NaN    3.7 g    0.7 g      3.7 g

3      NaN      NaN    1.7 g      1.7 g

4    1.1 g      NaN    1.0 g      1.1 g


查看完整回答
反对 回复 2022-05-19
?
湖上湖

TA贡献2003条经验 获得超2个赞

df = df.assign(new_col=df.replace('g', '', regex=True).astype(float).max(1).astype(str) + ' g'))



查看完整回答
反对 回复 2022-05-19
  • 3 回答
  • 0 关注
  • 145 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信