python - pandas 随机播放最后 N 行
问题描述
如何打乱熊猫数据框中的最后 N 行?当我说“随机播放”时,我的意思是随机改变行的顺序。这是我到目前为止所尝试的。我不知道如何正确重置索引。
import pandas as pd
import numpy as np
dat = pd.DataFrame({'d1': np.linspace(0, 1, 10)})
pd.concat([dat[:5], dat[5:].sample(frac=1).reset_index(drop=True)])
输出:
d1
0 0.000000
1 0.111111
2 0.222222
3 0.333333
4 0.444444
0 0.777778
1 0.666667
2 0.888889
3 1.000000
4 0.555556
解决方案
ignore_index=True
对于默认索引添加参数concat
:
dat = pd.DataFrame({'d1': np.linspace(0, 1, 10)})
df = pd.concat([dat[:5], dat[5:].sample(frac=1)], ignore_index=True)
另一种解决方案是sample
仅用于最后一行并分配回numpy array
以values
防止索引对齐:
dat.iloc[5:] = dat.iloc[5:].sample(frac=1).values
np.random.shuffle
就地工作的 Numpy 解决方案:
np.random.shuffle(dat.iloc[5:].values)
print (df)
d1
0 0.000000
1 0.111111
2 0.222222
3 0.333333
4 0.444444
5 0.666667
6 0.888889
7 1.000000
8 0.555556
9 0.777778
推荐阅读
- python - 使用 tensorflow 2 进行模型子类化时的 ValueError
- ansible - 如何在 Ansible 中检测 UNREACHABLE HOSTS
- mysql - MySQL View Order By 在 Select * FROM view WHERE 中不起作用
- angular - 错误:TypeError:无法设置未定义 RXJS 的属性“bindCallback”-Angular 10 + Typescript + Gulp v4 + System js
- python - 有没有办法在熊猫应用函数中使用变量名
- xamarin.forms - 如何在 xamarin 表单的列表视图中动态设置项目的元素可见性
- python - 如何在下提取值
- 是在
- 使用 BeautifulSoup
- 是在
- javascript - 找不到变量 FieldValue,React Native/Firebase
- react-native - 即使我使用来自“@react-native-community/async-storage”的错误,也可以在 AsyncStorage 上反应本机错误
- python - 返回函数的问题 - 不能使用递归代码