gpt4 book ai didi

Python计数和概率

转载 作者:太空宇宙 更新时间:2023-11-03 15:05:33 25 4
gpt4 key购买 nike

我有以下数据:

Name    Item
peter apple
peter apple
Ben banana
peter banana

我要打印

frequency of what peter eat :
apple 2
banana 1

这是我的代码

u, count = np.unique(data['Item'], return_counts=True)

process = u[np.where(data['Name']= 'peter')[0]]

process2 = dict(Counter(process))
print "Item\frequency"

for k, v in process2.items():
print '{0:.0f}\t{1}'.format(k,v)

但出现错误我也想计算一下peter下次吃苹果的概率但我不知道,有什么建议吗?

最佳答案

您得到的错误正如其他答案所示,您不能使用 data['Name'] = 'peter' 作为函数参数,您实际上打算使用 - np .where(data['Name'] == 'peter') .

但是,鉴于您使用的是 pandas ,我猜 data 是 pandas DataFrame 。在这种情况下,您真正​​想要的可以使用 DataFrame.groupby 实现。示例 -

data[data['Name']=='peter'].groupby('Item').count()

演示 -

In [7]: data[data['Name']=='peter'].groupby('Item').count()
Out[7]:
Name
Item
apple 2
banana 1

如果你想循环打印,你可以使用 -

df = data[data['Name']=='peter'].groupby('Item').count()
for fruit,count in df['Name'].iteritems():
print('{0}\t{1}'.format(fruit,count))

演示 -

In [24]: df = data[data['Name']=='peter'].groupby('Item').count()

In [25]: for fruit,count in df['Name'].iteritems():
....: print('{0}\t{1}'.format(fruit,count))
....:
apple 2
banana 1

对于 OP 收到的更新问题,他收到以下错误 -

TypeError: invalid type comparison

在这种情况下会出现问题,因为在 OP 的真实数据中,该列具有数值 (float/int) ,但 OP 正在将这些值与字符串进行比较,因此出现错误。示例 -

In [30]: df
Out[30]:
0 1
0 1 2

In [31]: df[0]=='asd'
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-31-e7bacd79d320> in <module>()
----> 1 df[0]=='asd'

C:\Anaconda3\lib\site-packages\pandas\core\ops.py in wrapper(self, other, axis)
612
613 # scalars
--> 614 res = na_op(values, other)
615 if np.isscalar(res):
616 raise TypeError('Could not compare %s type with Series'

C:\Anaconda3\lib\site-packages\pandas\core\ops.py in na_op(x, y)
566 result = getattr(x, name)(y)
567 if result is NotImplemented:
--> 568 raise TypeError("invalid type comparison")
569 except (AttributeError):
570 result = op(x, y)

TypeError: invalid type comparison

如果您的列是数字,您应该与数值而不是字符串进行比较。

关于Python计数和概率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33139736/

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