如何根据值的分布从Pandas Dataframe列中提取和分组值



我有一个包含一些数字的pandas列,例如:

A
1.10
1.11
1.00
2.10
2.11
2.10
3.10
3.11
3.12

我想把数字分成1 2 3的组怎么做呢?所以基本上,我想要指定差值,例如,如果差值是1.00+-0.5,那么我将所有落在这个范围内的数字分组,然后通过将它们放入一个数组来取它们的平均值。我已经尝试了groupby pd.cut(),但没有达到预期的结果。请帮助!

您的数据

d = {"A" : [1.10, 1.11, 1.00, 2.10, 2.11, 2.10, 3.10, 3.11, 3.12]}
df = pd.DataFrame.from_dict(d)

要将数据分组为1,2和3 -您可以简单地将float的第一个int转换为新列中的字符串(这里:grouping_of_A)。

df["grouping_of_A"] = df["A"].map(lambda x: str(x)[0])
print(df)
A          grouping_of_A
0  1.10             1
1  1.11             1
2  1.00             1
3  2.10             2
4  2.11             2
5  2.10             2
6  3.10             3
7  3.11             3
8  3.12             3
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 9 entries, 0 to 8
Data columns (total 2 columns):
#   Column         Non-Null Count  Dtype  
---  ------         --------------  -----  
0   A              9 non-null      float64
1   grouping_of_A  9 non-null      object 
dtypes: float64(1), object(1)
memory usage: 272.0+ bytes

相关内容

  • 没有找到相关文章

最新更新