在str和int实例之间不支持

时间:2019-04-20 22:46:25

标签: python pandas

我有此代码

data['A'].loc[data['A']>30] = 'high' 

为我工作。但是当我使用

data['A'].loc[data['A']<30] = 'low' 

弹出错误消息

'<' not supported between instances of 'str' and 'int'

我想在同一大熊猫列中将'high'的值设置为大于30,将'low'的值设置为小于30。

2 个答案:

答案 0 :(得分:3)

使用 nginx.ingress.kubernetes.io/auth-url: "https://example.com/oauth2/auth" nginx.ingress.kubernetes.io/auth-signin: "https://example.com/oauth2/start?rd=/redirect/$http_host$request_uri" 代替手动方法:

pd.cut

示例:

pd.cut(data['A'], [float('-inf'), 30, float('inf')], labels=['low', 'high'])

输出:

s = pd.Series([-10, 40, 70, 60, 20])
pd.cut(s, [float('-inf'), 30, float('inf')], labels=['low', 'high'])

答案 1 :(得分:1)

当您编写此行时:

for i in range(10): dic[i] = dict() for j in range(10): dic[i][j] = list()

您将data['A'].loc[data['A']>30] = 'high'列转换为类型A的列,其中包含objectint

当您写第二行时

str

大熊猫遍历完整的一列(包括将其值更新为data['A'].loc[data['A']<30] = 'low'的{​​{1}})

最好的方法是使用 gmds 中提到的>30

您还可以创建第二列,然后将其放在最后。

'high'

这不是最优雅的解决方案,但它可行