pandas的两个DataFrame相加

您所在的位置:网站首页 两个列表可以相加吗 pandas的两个DataFrame相加

pandas的两个DataFrame相加

2023-03-18 04:12| 来源: 网络整理| 查看: 265

最近在使用Python的pandas库时,涉及到需要往一个DataFrame添加一些噪声,噪声可以使用numpy的随机函数完成。但是相加时出现了问题。

一、环境 windows 7 64bit Python 2.7.10 64bit 二、问题

首先导入pandas、numpy库

import pandas as pd import numpy as np 先新建一个DataFrame,代码如下: df1 = pd.DataFrame(np.random.randn(3, 5), columns=['a', 'b', 'c', 'd', 'e'])

df1的值如下:

a b c d e 0 -0.519928 2.741647 1.731499 0.492604 -0.751538 1 0.082676 0.293655 -0.664515 -1.158618 -0.823970 2 -0.170181 0.491790 0.600444 -0.160671 1.275372 再新建一个噪声的DataFrame,如下: noise_df = pd.DataFrame(np.random.random((3,5)))

noise_df的值如下:

0 1 2 3 4 0 0.790597 0.917634 0.792538 0.804462 0.311289 1 0.389426 0.768850 0.832729 0.676595 0.097639 2 0.338827 0.270338 0.644152 0.907075 0.920115 将df1添加一些噪声,即加上noise_df new_df = df1 + noise_df

可是得到的new_df结果全身NaN值,如下:

0 1 2 3 4 a b c d e 0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

仔细观察发现,列名分别是0 1 2 3 4和a b c d e 考虑一下,可能是列名不同的原因导致的,看pandas的文档,证实了这一点。

那么解决办法就来了

三、解决办法

将上面的noise_df,指定列名称。 列名称就使用df1的列名称。代码如下:

noise_df = pd.DataFrame(np.random.random(df1.shape),columns=df1.columns)

再次将df1加上noise_df,这次没有错误了。

new_df = df1 + noise_df print(new_df)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3