我有一个 df,其中包含一列(例如“经度”),该列同时包含数字和字符串数据类型。 例如:[5,“高”,“3”]
我想将包含文本数据的行(例如“high”)更改为列中的最大值(例如“5”),您会使用哪种方法/函数? 谢谢你。
我想使用 df['latitude'].max() 函数,但它无法比较字符串和数字数据类型。
使用 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