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

2024-09-30 22:12:41 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我应该怎么做才能使用此列执行最小/最大操作?谢谢


Tags: 数据instances类型dfobject错误notbetween
3条回答

“DEINR”列中同时存在字符串值和浮点值。或者你可以隐蔽起来漂浮

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数据类型:

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

df['col1'].min()

输出:

'14c'

希望这就是你要找的

我通过捕捉打字错误解决了这个问题

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'

谢谢

相关问题 更多 >