首页 > 解决方案 > 通过继续浮点值(x轴)对熊猫数据框进行分组?

问题描述

我需要通过 x 值创建新的 df

前任。

df_1 >>> x 值为 2000-2300

df_2 >>> x 值为 2300-2800

df_3 >>> x 值为 2800-3500

...

如何在没有绘图图的情况下获得范围 x 值(继续浮点值)?

这里示例df

示例图片

这个数据看起来像

df.head()
X = [1089.818728,916.0439070000001,4275.421420000001,1650.879383,1769.973982]
Y = [788.5,1685.58,3276.11,2117.01,1870.11]
'X': {'count': 35269.0,
  'mean': 2770.332048115335,
  'std': 3398.8104089087337,
  'min': 606.576038,
  '25%': 1441.449553,
  '50%': 1877.575007,
  '75%': 2862.69605,
  'max': 67370.420428},
 'Y': {'count': 35269.0,
  'mean': 2168.9017117014914,
  'std': 1079.4422542889504,
  'min': 37.38,
  '25%': 1361.85,
  '50%': 2008.96,
  '75%': 2798.47,
  'max': 6738.99}}

<class 'pandas.core.frame.DataFrame'>
Int64Index: 35269 entries, 2 to 66521
Data columns (total 2 columns):
 #   Column        Non-Null Count  Dtype  
---  ------        --------------  -----  
 0     X           35269 non-null  float64
 1     Y           35269 non-null  float64
dtypes: float64(2)
memory usage: 826.6 KB

标签: pandas-groupby

解决方案


df_1 >>> x 值为 2000-2300

df_2 >>> x 值为 2300-2800

df_3 >>> x 值为 2800-3500

如果您真的想提取单个数据帧,您可以使用query

df_1 = df.query('2000<=X<=2300')
df_2 = df.query('2300<=X<=2800')
df_3 = df.query('2800<=X<=3500')

但如果你愿意groupby,你可以这样做cut

by = pandas.cut(df['X'], [2000, 2300, 2800, 3500])
df.groupby(by)

例如,这可用于获取示例图片中的条目计数:

df.groupby(by).count()

推荐阅读