在pandas中通过索引连接数据帧时出现奇怪的行为。有人可以解释发生了什么吗?

时间:2014-03-10 19:45:58

标签: python pandas dataframe

我在尝试将数据输出到文件之前尝试使用Dataframe存储数据,并在尝试向Dataframe添加数据时发现了一些奇怪的行为。有人可以看下面的代码并向我解释发生了什么,让我知道如何做我想做的事。

关键是我需要快速组合数据,所以我认为将数据从一个数据帧移动到另一个数据帧是最快的。

更新0.13.0但仍然获得NaN值

import pandas as pd; from random import uniform

pd.__version__
Out[2]: '0.13.1'

df = pd.DataFrame({
                   'x' : [int(uniform(0, 200)) for x in range(3)],
                   'y' : [int(uniform(0, 500)) for x in range(3)],
                   'z' : [int(uniform(0, 10)) for x in range(3)], 
                   'q' : [int(uniform(0, 60)) for x in range(3)],                   
                   });
df
Out[3]: 
    q    x    y  z
0  41   89  221  1
1  32   55  429  2
2   2  163  134  3

[3 rows x 4 columns]

st = pd.DataFrame({
                   'x' : [0] * 1000,
                   'y' : 0,               
                   });
st.head(2)
Out[4]: 
   x  y
0  0  0
1  0  0

[2 rows x 2 columns]

start_p = st[ st['x'] == 0].index[0];
end = start_p + len(df) -1;
print start_p, end
0 2

st.ix[start_p:end, st.columns] = df.ix[0:4,];
st.head(10)
Out[6]: 
     x    y
0   89  221
1   55  429
2  163  134
3    0    0
4    0    0
5    0    0
6    0    0
7    0    0
8    0    0
9    0    0

[10 rows x 2 columns]

df
Out[7]: 
    q    x    y  z
0  41   89  221  1
1  32   55  429  2
2   2  163  134  3

[3 rows x 4 columns]

start_p = st[ st['x'] == 0].index[0];
end = start_p + len(df) -1;
print start_p, end
3 5

st.ix[start_p:end, st.columns] = df.ix[0:4,];
st.head(10)
Out[9]: 
     x    y
0   89  221
1   55  429
2  163  134
3  NaN  NaN
4  NaN  NaN
5  NaN  NaN
6    0    0
7    0    0
8    0    0
9    0    0

[10 rows x 2 columns]

由于

0 个答案:

没有答案