使用pandas to_string中的formatters参数转换为日期

bri*_*enb 24 python

我知道有几种方法可以将列转换为日期对象,但我正在寻找的是同时格式化其他列的方法.说我有以下数据框:

import pandas as pd

url = "https://raw.github.com/pandas-dev/pandas/master/pandas/tests/data/tips.csv"
df = pd.read_csv(url)
df["date"] = list(range(42005, 42005+len(df)))
Run Code Online (Sandbox Code Playgroud)

我想要实现的是能够使用一些格式打印这些数据,所以我可能会做类似以下的事情:

print(
  df
  .head(10)
  .to_string(
    formatters={"total_bill": "${:,.2f}".format, 
                "tip": "${:,.2f}".format
    }
  )
)
Run Code Online (Sandbox Code Playgroud)

但我也想在此步骤中格式化日期.我试着在这里寻找我正在寻找的东西,但是日期时间选项看起来似乎不适用于我正在尝试做的事情,而构建自定义选项对我的目标受众来说有点超出范围.

是否可以以简单的方式做到这一点?

bri*_*enb 21

事实证明,一旦你意识到这个功能是如何运作的,那就非常容易了......

print(
    df
    .head(10)
    .to_string(
        formatters={"total_bill": "${:,.2f}".format, 
                    "tip": "${:,.2f}".format,
                    "date": lambda x: "{:%m/%d/%Y}".format(pd.to_datetime(x, unit="D"))
        }
    )
)

  total_bill   tip     sex smoker  day    time  size       date
0     $16.99 $1.01  Female     No  Sun  Dinner     2 02/08/2017
1     $10.34 $1.66    Male     No  Sun  Dinner     3 02/09/2017
2     $21.01 $3.50    Male     No  Sun  Dinner     3 02/10/2017
3     $23.68 $3.31    Male     No  Sun  Dinner     2 02/11/2017
4     $24.59 $3.61  Female     No  Sun  Dinner     4 02/12/2017
5     $25.29 $4.71    Male     No  Sun  Dinner     4 02/13/2017
6      $8.77 $2.00    Male     No  Sun  Dinner     2 02/14/2017
7     $26.88 $3.12    Male     No  Sun  Dinner     4 02/15/2017
8     $15.04 $1.96    Male     No  Sun  Dinner     2 02/16/2017
9     $14.78 $3.23    Male     No  Sun  Dinner     2 02/17/2017
Run Code Online (Sandbox Code Playgroud)