查找同时包含数字和字符串数据类型的特定列中的最大值

问题描述 投票:0回答:1

我有一个 df,其中包含一列(例如“经度”),该列同时包含数字和字符串数据类型。 例如:[5,“高”,“3”]

我想将包含文本数据的行(例如“high”)更改为列中的最大值(例如“5”),您会使用哪种方法/函数? 谢谢你。

我想使用 df['latitude'].max() 函数,但它无法比较字符串和数字数据类型。

python pandas numpy machine-learning
1个回答
0
投票

使用 pd.to_numeric 方法将纬度列中的值转换为数字。 然后您将使用 .fillna 任何 NaN 值以及您获得的最大值。 附: error='coerce' 表示您得到的任何非数字,pandas 会将其转换为 NaN。

import pandas as pd

yourData = {'latitude': [5, "high", "3"]}
df = pd.DataFrame(yourData)

MaxValues = pd.to_numeric(df['latitude'], errors='coerce').max()

df['latitude'] = pd.to_numeric(df['latitude'], errors='coerce').fillna(MaxValues)

print(df)
   latitude
0       5.0
1       5.0
2       3.0
© www.soinside.com 2019 - 2024. All rights reserved.