如何从 pandas 样式对象中的日期时间列中删除时间戳
How to remove timestamp from datetime column in pandas Style Object
我有一个 DataFrame,其日期列没有时间戳:
但是一旦我将 style
应用于 df 中的另一列,例如:
df = df.style.applymap(colorFunction, subset=['column3'])
DataFrame 变成了一个 Style Object,并且 "Date" 列获得了之前没有的时间戳,如以下:
我尝试了以下方法从日期列中删除时间戳:
df['Date'].style.apply(lambda x: x.strftime('%Y-%m-%d'))
我收到以下错误:
TypeError: 'Styler' object is not subscriptable
有没有办法从 Style 对象中删除时间戳?
这只是权宜之计,但您可以手动指定日期列的常用 %Y-%m-%d
显示格式,如下所示:
styled = (df.style
.applymap(colorFunction, subset=['column3'])
.format({'Date': '{:%Y-%m-%d}'}))
示例
# Example data
df = pd.DataFrame({'Date': pd.date_range('2020-01-01',
'2020-01-05',
freq='d'),
'Value': list(range(-2, 3))})
# Example color function
def f(v):
return 'color: red;' if v < 0 else None
# Unexpected addition of H:M:S to date column
df.style.applymap(f, subset='Value')
# Specify desired date format
df.style.applymap(f, subset='Value').format({'Date': '{:%Y-%m-%d}'}))
除了@Peter Leimbigler 提供的好答案之外,作为替代解决方案,在应用 Style 之前将 Date 列转换为字符串可防止 Styler 格式化程序添加时间戳。
df['Date'] = df['Date'].astype(str)
以彼得为例:
# Example data
df = pd.DataFrame({'Date': pd.date_range('2020-01-01',
'2020-01-05',
freq='d'),
'Value': list(range(-2, 3))})
# Example color function
def f(v):
return 'color: red;' if v < 0 else None
# Converting the Date column to a string before applying the Style
df['Date'] = df['Date'].astype(str)
df.style.applymap(f, subset='Value')
我有一个 DataFrame,其日期列没有时间戳:
但是一旦我将 style
应用于 df 中的另一列,例如:
df = df.style.applymap(colorFunction, subset=['column3'])
DataFrame 变成了一个 Style Object,并且 "Date" 列获得了之前没有的时间戳,如以下:
我尝试了以下方法从日期列中删除时间戳:
df['Date'].style.apply(lambda x: x.strftime('%Y-%m-%d'))
我收到以下错误:
TypeError: 'Styler' object is not subscriptable
有没有办法从 Style 对象中删除时间戳?
这只是权宜之计,但您可以手动指定日期列的常用 %Y-%m-%d
显示格式,如下所示:
styled = (df.style
.applymap(colorFunction, subset=['column3'])
.format({'Date': '{:%Y-%m-%d}'}))
示例
# Example data
df = pd.DataFrame({'Date': pd.date_range('2020-01-01',
'2020-01-05',
freq='d'),
'Value': list(range(-2, 3))})
# Example color function
def f(v):
return 'color: red;' if v < 0 else None
# Unexpected addition of H:M:S to date column
df.style.applymap(f, subset='Value')
# Specify desired date format
df.style.applymap(f, subset='Value').format({'Date': '{:%Y-%m-%d}'}))
除了@Peter Leimbigler 提供的好答案之外,作为替代解决方案,在应用 Style 之前将 Date 列转换为字符串可防止 Styler 格式化程序添加时间戳。
df['Date'] = df['Date'].astype(str)
以彼得为例:
# Example data
df = pd.DataFrame({'Date': pd.date_range('2020-01-01',
'2020-01-05',
freq='d'),
'Value': list(range(-2, 3))})
# Example color function
def f(v):
return 'color: red;' if v < 0 else None
# Converting the Date column to a string before applying the Style
df['Date'] = df['Date'].astype(str)
df.style.applymap(f, subset='Value')