gpt4 book ai didi

python - 带有 bins 参数的 pandas value_counts

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

我有一个这样的数据框,

col1
1
2
3
2
2
3
1
1
2
3
1
1
3
3
1
1
3

当我计算的时候

打印 df['col1'].value_counts(bins=2)

它给了我,

(0.997, 2.0]    11
(2.0, 3.0] 6
Name: col1, dtype: int64

结果很好。但在索引中它给出了 (&] 的混合。为什么它的行为是这样的。因为我想将索引保留为如下所示的新列。

temp=pd.DataFrame(df['col1'].value_counts(bins=2).reset_index()).rename(columns={'index':'bin'})

有什么方法可以保留相同的括号“(”或“]”。还是我应该用另一行代码清理(替换)它?

请帮助理解问题。提前致谢。

最佳答案

如果需要转换可以使用Intervalindex元组:

df1 = df['col1'].value_counts(bins=2).reset_index().rename(columns={'index':'bin'})
df1['bins'] = [(x.left, x.right) for x in df1['bin']]
print (df1)
bin col1 bins
0 (0.997, 2.0] 11 (0.997, 2.0)
1 (2.0, 3.0] 6 (2.0, 3.0)

或者列出:

df1['bins'] = [[x.left, x.right] for x in df1['bin']]
print (df1)
bin col1 bins
0 (0.997, 2.0] 11 [0.997, 2.0]
1 (2.0, 3.0] 6 [2.0, 3.0]

另外,如果需要 string:

df1['bins'] = ['({}, {})'.format(x.left, x.right) for x in df1['bin']]
print (df1)
bin col1 bins
0 (0.997, 2.0] 11 (0.997, 2.0)
1 (2.0, 3.0] 6 (2.0, 3.0)

对于新列:

df1[['l', 'r']] = pd.DataFrame([(x.left, x.right) for x in df1['bin']])
print (df1)
bin col1 l r
0 (0.997, 2.0] 11 0.997 2.0
1 (2.0, 3.0] 6 2.000 3.0

关于python - 带有 bins 参数的 pandas value_counts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49918511/

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