use*_*244 2 python dataframe python-2.7 pandas
我试图基于数据帧的索引值加入两个数据帧但是,我的结果产生NaN,然后是重复索引值的值.
print st
Run Code Online (Sandbox Code Playgroud)
结果(存储在数据帧系列中,只有索引如下)
index
1499054400000
1499140800000
1499227200000
1499313600000
1499400000000
Run Code Online (Sandbox Code Playgroud)
另一个数据帧如下
print dtest2
Run Code Online (Sandbox Code Playgroud)
这导致(与上述索引相同)
1
index
1499227200000 33.48
1499400000000 35.71
Run Code Online (Sandbox Code Playgroud)
当我合并两个数据帧时,我试图获得以下内容
结果需要
index 1
1499054400000 0.0
1499140800000 0.0
1499227200000 33.48
1499313600000 0.0
1499400000000 35.71
Run Code Online (Sandbox Code Playgroud)
但是,当我连接如下
pd.concat([st,dtest2],ignore_index=False)
Run Code Online (Sandbox Code Playgroud)
我得到以下内容
1
index
1499054400000 NaN
1499140800000 NaN
1499227200000 NaN
1499313600000 NaN
1499400000000 NaN
1499227200000 33.48
1499400000000 35.71
Run Code Online (Sandbox Code Playgroud)
IIUC ......使用 pd.DataFrame.reindex
dtest2.reindex(st.index, fill_value=0)
1
index
1499054400000 0.00
1499140800000 0.00
1499227200000 33.48
1499313600000 0.00
1499400000000 35.71
Run Code Online (Sandbox Code Playgroud)
但是,您可能会遇到一个隐藏的问题,即类型不同.您可以通过使用astype它们来确保所有索引都相同.
dtest2.index = dtest2.index.astype(str)
st.index = st.index.astype(str)
dtest2.reindex(st.index, fill_value=0)
1
index
1499054400000 0.00
1499140800000 0.00
1499227200000 33.48
1499313600000 0.00
1499400000000 35.71
Run Code Online (Sandbox Code Playgroud)
要么
dtest2.index = dtest2.index.astype(int)
st.index = st.index.astype(int)
dtest2.reindex(st.index, fill_value=0)
1
index
1499054400000 0.00
1499140800000 0.00
1499227200000 33.48
1499313600000 0.00
1499400000000 35.71
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1929 次 |
| 最近记录: |