【发布时间】:2022-01-13 08:29:53
【问题描述】:
有一种行为,我不明白为什么会发生。
# Make a dataframe with a column of floats
df = pd.DataFrame(columns=['col1'])
df.loc[0] = 10.0
df.loc[1] = 5.0
df.loc[2] = 6.0
df.loc[3] = 20.0
# Convert the column to string
df['col1'] = df['col1'].astype(str)
# Use .str.replace to replace the decimal points of .0 with nothing
df['col1'].str.replace('.0', '')
但这会为第一个和最后一个值返回一个空字符串
0
1 5
2 6
3
名称:col1,数据类型:对象
但是这样做:
# Apply replace in a lambda function
df['col1'].apply(lambda x: x.replace('.0', ''))
这会返回预期的结果
0 10
1 5
2 6
3 20
名称:col1,数据类型:对象
这是否与将 0.0 与 .0 混淆?
知道为什么会这样吗?
【问题讨论】:
标签: pandas string dataframe replace