使用pandas中的格式化参数转换为日期to_string
我知道有几种方法可以将列转换为日期对象,但是我正在寻找的是一种在同时格式化其他列的同时这样做的方法。说我有以下数据帧:使用pandas中的格式化参数转换为日期to_string
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)))
我试图做到的,是使用某种格式打印这些数据的能力,所以我可以做类似如下:
print(
df
.head(10)
.to_string(
formatters={"total_bill": "${:,.2f}".format,
"tip": "${:,.2f}".format
}
)
)
但我也想在这一步中格式化日期。我试图通过here寻找我正在寻找的内容,但日期时间选项似乎并不像我想要做的那样工作,并且构建自定义选项对于目标受众有点超出范围。
是否有可能以简单的方式做到这一点?
事实证明,一旦你实现的功能实际上是如何工作的,这是非常容易...
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
@那么你现在得到赏金了吗? o.0赏金如何工作? – AsheKetchum
@asheketchum被提出的赏金是我自己的名声,所以我想我只是得到那个代表,因为我能够最终回答我自己的问题。如果其他人提供了他们的代表作为赏金,我想它会有点不同。 – brittenb
@asheketchum事实证明我没有得到我的名声...... – brittenb
对于它的价值,我要做到这一点的原因是因为我组建了一个Python的教程SAS用户为我的同事,所以我试图尽可能多地比较。我意识到这不太可能需要在实践中完成,但我希望能够在教程中显示它,如果可能的话。 – brittenb
你看过吗?例如,https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior'%B'将输出月份作为文本而不是数字。另外,你能否澄清日期来自哪里?那是在数据库中,还是打算使用当前的日期时间? –
@XanderLuciano能够使用'strftime'或'strptime'会很棒,但我需要能够在'to_string'函数中使用它,我无法弄清楚如何做到这一点。这里的目标是允许用户在这一步中格式化所有数据。日期数据将在数据库本身中。如果它已经是日期格式,例如“01/01/2016”,则不需要处理。如果是整数格式,比如'01012016',那么我已经知道如何去做。自从时代以来,我只需要这些。 – brittenb