作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含 506 行的 pandas 数据框。我有一个 numpy 数组,其中包含从数据帧计算得出的 501 个元素。
我想将 numpy 数组连接到数据帧,保留数据帧的索引并以数据帧的第一个索引值开始 numpy 数组的索引。
问题在于,由于 numpy 数组的长度不同并且没有行索引的概念,因此连接操作失败。
有什么巧妙的方法可以解决这个问题吗?
最佳答案
我将从 np 数组构造一个 Series
,然后构造一个新的 Series
但传递目标 df 的索引,这有效地重新索引现有的 Series
,在没有行值的地方引入 NaN
值,这将与目标 df 正确对齐:
In [51]:
df = pd.DataFrame(np.random.randn(5,3), columns=list('abc'))
s = pd.Series(np.arange(3))
s1 = pd.Series(s, index=df.index)
s1
Out[51]:
0 0.0
1 1.0
2 2.0
3 NaN
4 NaN
dtype: float64
In [53]:
df['d'] = s1
df
Out[53]:
a b c d
0 0.990381 2.583867 0.018435 0.0
1 0.867695 -0.958220 -0.351783 1.0
2 0.476210 -1.015887 1.285303 2.0
3 -0.198863 -2.514740 1.228772 NaN
关于python - 将较短长度的 Numpy 数组连接到 Pandas Dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38309692/
我是一名优秀的程序员,十分优秀!