在熊猫中使用max()函数时出错

时间:2020-04-23 10:42:53

标签: python pandas

我有一个数据框inp_df,其中包含带有建筑物编号的列'DEINR'。由于存在诸如“ 44a”或“ 14c / 1”之类的值,因此此列的类型为 object 。当我尝试执行inp_df['DEINR'].min().max()时出现错误:

'<=' not supported between instances of 'str' and 'float'

我应该怎么做才能使此列达到最小/最大?谢谢!

3 个答案:

答案 0 :(得分:1)

DEINR列的数据类型为object,因为它同时具有floatstr值。首先,您需要将整个列转换为str类型,然后才能在该列上计算min()max()

d = {'col1': ['14c', 2], 'col2': ['432a', 4]}
df = pd.DataFrame(data=d)

df.dtypes

输出:

col1    object
col2    object
dtype: object

将列转换为str dtype:

df['col1'] = df['col1'].astype(str)

df['col1'].min()

输出:

'14c'

希望这就是您想要的。

答案 1 :(得分:0)

字符串和浮点值都出现在“ DEINR”列中。或者您可以隐蔽地漂浮。

答案 2 :(得分:0)

我已经通过捕获TypeError解决了这个问题。

minimum_values = pd.DataFrame(columns=['Minimum Value'])
for v in list(inp_df.columns.values):
    try:
        minimum_values.loc[v] = [inp_df[v].min()]
    except TypeError:
        minimum_values.loc[v] ='N/A'

谢谢!