我有一个数据框,我想弹出一定数量的记录,而不是我想作为百分比值传递的数字。
例如,
df.head(n=10)
从数据集中弹出前 10 条记录。我想要一个小的变化而不是 10 条记录我想从我的数据集中弹出 前 5% 的记录。如何在熊猫中做到这一点。
我正在寻找这样的代码,
df.head(frac=0.05)
有什么简单的方法可以得到这个吗?
原文由 Mohamed Thasin ah 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个数据框,我想弹出一定数量的记录,而不是我想作为百分比值传递的数字。
例如,
df.head(n=10)
从数据集中弹出前 10 条记录。我想要一个小的变化而不是 10 条记录我想从我的数据集中弹出 前 5% 的记录。如何在熊猫中做到这一点。
我正在寻找这样的代码,
df.head(frac=0.05)
有什么简单的方法可以得到这个吗?
原文由 Mohamed Thasin ah 发布,翻译遵循 CC BY-SA 4.0 许可协议
我已经扩展了 Mihai 对我的使用的回答,它可能对外面的人有用。目的是自动选择时间序列抽样的前 n 条记录,因此您确定您正在使用旧记录进行培训,并使用最近的记录进行测试。
# having
# import pandas as pd
# df = pd.DataFrame...
def sample_first_prows(data, perc=0.7):
import pandas as pd
return data.head(int(len(data)*(perc)))
train = sample_first_prows(df)
test = df.iloc[max(train.index):]
原文由 Julian 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
没有内置方法,但您可以这样做:
您可以
multiply
总行数占您的百分比,并将结果用作head
方法的参数。因此,如果您的数据框包含
1000
行和n = 5%
您将获得第一行50
行。