首页 > 解决方案 > 将数据框值组合到新的数据框

问题描述

我正在将 Excel 文件中的两个数据框值组合到一个新的数据框,但组合值更改为十进制数。这是我的代码:

我希望合并的数据框:

cable_block    pair
1              10
1              11
3              123
3              222

我插入了一个数据框,将这两个与分隔符结合在一起/,所以这是我的代码:

df['new_col'] = df[['cable_block', 'pair']].apply(lambda x: '/'.join(x.astype(str), axis=1))

我得到的结果是:

cable_block    pair   new_col
1              10     1.0/10.0
1              11     1.0/11.0
3              123    3.0/123.0
3              222    3.0/222.0

搜索后,我在 这里Psidom 和 Skirrebattie 找到了很好的答案。所以我尝试了:

df['new_col'] = df['new_col'].applymap(str)

df['new_col'] = df['new_col'].astype(str)

但它没有按应有的方式工作。查看代码,它应该可以工作,但我发现它不起作用很奇怪。

还有其他解决方法吗?

标签: pythonstringpandasseries

解决方案


首先,要删除尾随.0确保数据是int

 df = df.astype(int)

然后你可以这样做:

df['cable_block'].astype(str) + '/' + df['pair'].astype(str)

0     1/10
1     1/11
2    3/123
3    3/222
dtype: object

确保格式正确的另一个选项可能是:

 df.apply(lambda x: "%d/%d" %(x['cable_block'], x['pair']), axis=1)

0     1/10
1     1/11
2    3/123
3    3/222
dtype: object

推荐阅读