python:将一个数据框划分为与另一个数据框相同的间隔



我根据'ages'列将以下数据框划分为4个区间。假设我想要另一个数据帧具有相同的时间间隔,有什么快速的方法可以做到吗?换句话说,以下行

df1['age_groups'] = pd.cut(df1.ages,4)
print(df1['age_groups'])

将数据帧划分为以下间隔

(1.944, 16.0]    5
(16.0, 30.0]     3
(30.0, 44.0]     2
(44.0, 58.0]     2

但是如果我有一个不同的数据帧,在一个具有相同名称的列中有稍微不同的数字,那么相同的代码将产生不同的间隔。如何确保可以将其他数据帧细分为相同的间隔?

ages=[35.000000,
2.000000,
27.000000,
14.000000,
4.000000,
58.000000,
20.000000,
39.000000,
14.000000,
55.000000,
2.000000,
29.699118]
values=[1,0,1,1,0,0,0,1,0,0,1,1]
df1=pd.DataFrame()
df1['ages']=ages
df1['values']=values
#print(df1)
df1['age_groups'] = pd.cut(df1.ages,4)
  1. 使用retbins关键字
  2. 保存来自第一个DataFrame的bin
  3. 使用它作为第二个DataFrame的bins参数:
df1['age_groups'], bins = pd.cut(df1["ages"], 4, retbins=True)
df2['age_groups'] = pd.cut(df2["ages"], bins=bins)
<编辑>工作的例子:
import numpy as np
import pandas as pd
np.random.seed(100)
df1 = pd.DataFrame({"ages": np.random.randint(10, 80, 20)})
df2 = pd.DataFrame({"ages": np.random.randint(10, 80, 20)})
df1['age_groups'], bins = pd.cut(df1["ages"], 4, retbins=True)
df2['age_groups'] = pd.cut(df2["ages"], bins=bins)
>>> df1.head()
ages     age_groups
0   18  (11.935, 28.25]
1   34    (28.25, 44.5]
2   77    (60.75, 77.0]
3   58    (44.5, 60.75]
4   20  (11.935, 28.25]
>>> df2.head()
ages     age_groups
0   11              NaN
1   23  (11.935, 28.25]
2   14  (11.935, 28.25]
3   69    (60.75, 77.0]
4   77    (60.75, 77.0]

相关内容

  • 没有找到相关文章

最新更新