是否可以将多个DataFrame混合在一起?
例如,我有一个DataFrame df1
和一个DataFrame df2
。我想随机地对行进行随机播放,但对于两个DataFrames都是以相同的方式。
示例
df1
:
|___|_______|
| 1 | ... |
| 2 | ... |
| 3 | ... |
| 4 | ... |
df2
:
|___|_______|
| 1 | ... |
| 2 | ... |
| 3 | ... |
| 4 | ... |
对两个DataFrames 的可能订单进行洗牌后可能是:
|___|_______|
| 2 | ... |
| 3 | ... |
| 4 | ... |
| 1 | ... |
答案 0 :(得分:6)
我认为将reindex
应用于index
可以加倍numpy.random.permutation
,但必须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
替代reindex_axis
:
print (df1.reindex_axis(idx, axis=0))
print (df2.reindex_axis(idx, axis=0))