python - 按固定百分比随机播放 pandas 中的单列
问题描述
我正在尝试使用 Sklearn utils shuffle 函数在每次迭代中按固定百分比(每次迭代中的 2% 行。总迭代次数 = 30)对 pandas 中的单个列进行改组。但它不会改变原始数据框。有什么方法可以在原始数据帧上应用此操作?或者有什么替代方法吗?谢谢。
这是代码:
from sklearn.utils import shuffle
for i in range(0, 30, 2):
percent = (i/100) * len(df_task2_train)
shuffle(df_task2_train['class'], n_samples=int(percent))
解决方案
您没有分配结果并且 sklearn 输出 numpy 数组:尝试类似
shuffled_dfs = [None] * len(range(0, 30, 2))
for i in range(0, 30, 2):
percent = (i/100) * len(df_task2_train)
shuffled_dfs[i] = pd.DataFrame(shuffle(df_task2_train['class'], n_samples=int(percent)))
如果你想连接所有生成的 df 你可以用
shuffled_df = pd.concat(shuffled_dfs)
坦率地说,我不会使用 sklearn,而是使用 pandas.DataFrame.sample,这样您就不必在 numpy 数组和 pandas 数据帧之间切换
推荐阅读
- php - 注入控制器中的函数有多少模型名称[基于问题]?
- unit-testing - Azure Dev Ops 构建管道 xunit 嵌套失败(.net 核心)
- java - 空 GETINPUTSTREAM
- java - Spring STOMP WebSocket 会话断开处理程序/重新连接处理
- java - 如何进一步调查内存泄漏
- android - 我应该在 BindAdapter 类中使用注入吗?
- python - 将文件作为附件发送 Django
- tensorflow - 对比损失函数的准确性在训练集上有所提高,但验证准确性变得更差或没有提高
- python - 是否可以在内联代码中使用“with”?
- mongodb - 如何使用 MongoDB-JAVA API 动态关闭模式验证