gpt4 book ai didi

python - 在一次扫描中将 DataFrame 拆分为 2

转载 作者:太空宇宙 更新时间:2023-11-04 09:34:36 24 4
gpt4 key购买 nike

假设有以下数据框:

df = pd.DataFrame({'A': [1,2,3,4], 'B': [1,4,9,16]})

如果我必须将其拆分为 2 个数据帧,我们可以按照以下方式进行

df1 = df[df['B'] < 5]
df2 = df[df['B'] >= 5]

但是这里 df 会被扫描两次。有没有办法在单个有效行中将 DataFrame 分成 2 个;一次扫描?

编辑:甚至@jezrael 的建议也有类似的表现:

m = df['B'] < 5
#better performance with comparing numpy array
#m = df['B'].values < 5
df1 = df[m]
df2 = df[~m]

最佳答案

您可以使用 groupby 如下所示:

df = pd.DataFrame({'A': [1,2,3,4], 'B': [1,4,9,16]})
sampled_dfs = [x for _, x in df.groupby(df['B']<5)]
print(sampled_dfs[0])
print(sampled_df[1])

输出:

  A B
2 3 9
3 4 16

A B
0 1 1
1 2 4

关于python - 在一次扫描中将 DataFrame 拆分为 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54267302/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com