为什么数据帧中的切片分配会考虑索引?

时间:2016-06-01 09:41:18

标签: python numpy pandas

来自numpy,我希望这个片段

import pandas as pd
import numpy as np

df1 = pd.DataFrame(np.random.rand(10))
df2 = pd.DataFrame(np.arange(10))

df1[4:6] = df2[5:7]

print(df1)

产生类似

的内容
          0
0  0.851412
1  0.533122
2  0.244325
3  0.242295
4  5.000000
5  6.000000
6  0.036066
7  0.350092
8  0.400461
9  0.744239

相反,我得到了

          0
0  0.210079
1  0.603919
2  0.541231
3  0.693830
4       NaN
5  5.000000
6  0.742590
7  0.318744
8  0.954216
9  0.641225

显然,大熊猫在执行作业时会考虑df1df2的索引。我知道我可以使用

达到我想要的结果
df1[4:6] = df2[5:7].values

但我无法弄清楚为什么检查两个可能不相关的数据帧的索引是有意义的。我也浏览了文档,但找不到任何相关内容。我的数据帧的心理模型是错误的吗?我的熊猫版本是0.18。

1 个答案:

答案 0 :(得分:2)

index使pandas dataframe的内容超过numpy ndarray。你可能已经绊倒了一个看似微不足道的不便,但同样的特征允许许多强大的操作,仅凭numpy无法实现。