我正试着用下面这样的范围的熊猫箱。
tipBins = [1,5,10,15,20,25,30].此外,对于一些乘车,小费将是零,不属于任何范围。如何在熊猫箱中提供这个值为零。我需要一个像下面这样的垃圾箱分区。
==0
1-5
5-10
10-15
15-20
20-25
25-30import numpy as np
tipBins = [1,5,10,15,20,25,30]
tipData=DataFrame(tipPercentage)
tip_data_names = ["No Tip", '1-5','5-10','10-15','15-20','20-25','25-30']
tipData['ranges'] = pd.cut(tipData['tipPercent'], tipBins, labels=tip_data_names)
td=tipData[['count','ranges']].groupby(['ranges']).sum().fillna(0)
sd.reset_index()我应该有像tipBins = [0,0,1,5,10,15,20,25,30].这样的垃圾箱吗?
发布于 2017-04-21 02:46:11
如果您确信tipPercentage不包含任何负数,则可以在tipBins中添加一个负数,例如:
tipBins = [-1,1,5,10,15,20,25,30]示例
v = [0, 4, 7, 20, 26]
tip_data_names = ["No Tip", '1-5','5-10','10-15','15-20','20-25','25-30']
import pandas as pd
pd.cut(v, tipBins, labels=tip_data_names)
# [No Tip, 1-5, 5-10, 15-20, 25-30]
# Categories (7, object): [No Tip < 1-5 < 5-10 < 10-15 < 15-20 < 20-25 < 25-30]如果数据超出了所需的范围,例如,在0到1之间有一些不想包含的值,那么在剪切之前可能需要对数据进行筛选。
tipData = tipData[(tipData['tipPercent'] == 0) | ((tipData['tipPercent'] >= 1) & (tipData['tipPercent'] <= 30)]这样,您的数据将完全落在您所关心的范围内,然后您可以使用上面所述的方法来切割它。
https://stackoverflow.com/questions/43532878
复制相似问题