在pandas datafram中将float转换为string

2024-05-19 07:23:58 发布

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

我在pandas中有一个包含datetime和float数据的数据帧。

time                         price1              price2
2018-02-01T00:00:00.000Z     1.4526547885        1.654775563

我需要将列转换为字符串格式,以便price1和price2列显示小数点后4位的数字,时间显示为:01,022018 00:00:00

任何关于这方面的线索都是值得赞赏的。谢谢


Tags: 数据字符串pandasdatetimetime格式时间数字
3条回答

这应该有效:

df["price1"] = df["price1"].round(4).astype(str)
df["price2"] = df["price2"].round(4).astype(str)
df['time'] = df['time'].dt.strftime('%d,%m,%Y %H:%M:%S')

您可以使用round方法仅显示4个小数。并使用.apply(str)将其转换为string对象

例如:

df["price1"] = df["price1"].round(4).apply(str)
df["price2"] = df["price2"].round(4).apply(str)

您可以使用^{}来格式化datetimes,然后使用floats的自定义格式:

df['time'] = df['time'].dt.strftime('%Y,%m,%d %H:%M:%S')

cols = ['price1','price2']
df[cols] = df[cols].applymap(lambda x: '{0:.4f}'.format(x))
print (df)
                  time  price1  price2
0  2018,02,01 00:00:00  1.4527  1.6548

相关问题 更多 >

    热门问题