Sci*_*tas 3 python dataframe pandas
是否可以将多个DataFrame混合在一起?
例如,我有一个DataFrame df1
和一个DataFrame df2
.我想随机地对行进行随机播放,但对于两个DataFrame以相同的方式.
例
df1
:
|___|_______|
| 1 | ... |
| 2 | ... |
| 3 | ... |
| 4 | ... |
Run Code Online (Sandbox Code Playgroud)
df2
:
|___|_______|
| 1 | ... |
| 2 | ... |
| 3 | ... |
| 4 | ... |
Run Code Online (Sandbox Code Playgroud)
在洗牌之后,两个DataFrame的可能订单可能是:
|___|_______|
| 2 | ... |
| 3 | ... |
| 4 | ... |
| 1 | ... |
Run Code Online (Sandbox Code Playgroud)
我想,你可以双击reindex
在施加numpy.random.permutation
到index
,但需要双方DataFrame
š具有相同的长度和相同的唯一索引值:
df1 = pd.DataFrame({'a':range(5)})
print (df1)
a
0 0
1 1
2 2
3 3
4 4
df2 = pd.DataFrame({'a':range(5)})
print (df2)
a
0 0
1 1
2 2
3 3
4 4
idx = np.random.permutation(df1.index)
print (df1.reindex(idx))
a
2 2
4 4
1 1
3 3
0 0
print (df2.reindex(idx))
a
2 2
4 4
1 1
3 3
0 0
Run Code Online (Sandbox Code Playgroud)
替代方案reindex_axis
:
print (df1.reindex_axis(idx, axis=0))
print (df2.reindex_axis(idx, axis=0))
Run Code Online (Sandbox Code Playgroud)