我在尝试将数据输出到文件之前尝试使用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]
由于