我在pandas中有一个包含datetime和float数据的数据框。
time price1 price2
2018-02-01T00:00:00.000Z 1.4526547885 1.654775563
我需要将列转换为字符串格式,以便price1和price2列显示最多4位小数,时间显示为:01,02,2018 00:00:00
对此的任何线索表示赞赏。谢谢
答案 0 :(得分:1)
您可以使用dt.strftime
格式化datetime
,然后使用float
的自定义格式:
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
答案 1 :(得分:0)
您可以使用 round 方法仅显示4位小数。并使用。 apply (str)将其转换为字符串对象
<强> EX 强>:
df["price1"] = df["price1"].round(4).apply(str)
df["price2"] = df["price2"].round(4).apply(str)
答案 2 :(得分:0)
这应该有效:
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')