我有以下df:
import pandas as pd
from datetime import datetime, timedelta
df = pd.DataFrame([
["A", "2018-08-03"],
["B", "2018-08-20"]
])
df.columns = ["Item", "Date"]
Run Code Online (Sandbox Code Playgroud)
我想得到我的df的每一行的一周的第一天.我试着这样做:
df['Date'] = pd.to_datetime(df['Date'], format='%Y-%m-%d')
df["Day_of_Week"] = df.Date.dt.weekday
df["First_day_of_the_week"] = df.Date - timedelta(days=df.Day_of_Week)
Run Code Online (Sandbox Code Playgroud)
但是我收到了错误消息:
TypeError: unsupported type for timedelta days component: Series
Run Code Online (Sandbox Code Playgroud)
如何获得系列赛的第一天?我的预期结果是:
我有一个带有多个标头的 df :
multicol = pd.MultiIndex.from_tuples([('France', '2017'), ('France', '2018'),('UK', '2017'), ('UK', '2018')], names = ("Country", "Year"))
df = pd.DataFrame([[1, 2, 5, 8], [2, 4, 2, 9]], index=['Number', 'Volume'], columns=multicol)
Run Code Online (Sandbox Code Playgroud)
我只想打印 2018 年的法国专栏。
我怎样才能做到这一点 ?
我正在运行 Python 3.8.3,我发现 ISO Week 格式 (%V) 有些奇怪:
2019 年的第一天和最后一天都在第一周。
from datetime import date
print(date(2019, 1, 1).strftime('%Y-W%V'))
print(date(2019, 12, 29).strftime('%Y-W%V'))
print(date(2019, 12, 31).strftime('%Y-W%V'))
Run Code Online (Sandbox Code Playgroud)
输出:
from datetime import date
print(date(2019, 1, 1).strftime('%Y-W%V'))
print(date(2019, 12, 29).strftime('%Y-W%V'))
print(date(2019, 12, 31).strftime('%Y-W%V'))
Run Code Online (Sandbox Code Playgroud)
为什么它会这样?