python - 如何将数据框的包含数字日期的列更改为文本形式?

标签 python pandas dataframe rows

我有一个这样的数据集

日期 ----------F/R-----S/R

2018年9月22日 --- 72-------- 00

2018年9月21日-----22---------17

现在我想做的只是想以文本格式替换该日期,例如“9”我想要“九月”,对于“22”天我想要“星期六”。 首先,我尝试使用这段代码将月份从数字更改为文本,但失败了

import pandas as pd


# Importing the dataset
dataset = pd.read_csv('teer1_new1.csv')

def f(x):
    if (x['Date']):
        if (x[0:1] == '9/'):
            return 'September'
    else:
        return 'none'

dataset['Date'] = dataset.apply(f, axis=1)

我收到此错误

ValueError: ('The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().', 'occurred at index 0')

是的,我的数据框日期列中有很多行,感谢您的提醒。

最佳答案

您需要首先将日期转换为日期时间 - 通过 read_csv 中的参数 parse_datespandas.to_datetime ,上次使用Series.dt.month_nameSeries.dt.day_name :

df = pd.read_csv('teer1_new1.csv', parse_dates=['Date'])
#alternative
#df['Date'] = pd.to_datetime(df['Date'], format='%m/%d/%Y')

df['Date1'] = df['Date'].dt.day_name()
df['Date2'] = df['Date'].dt.month_name()
print (df)
        Date  F/R  S/R     Date1      Date2
0 2018-09-22   72    0  Saturday  September
1 2018-09-21   22   17    Friday  September

关于python - 如何将数据框的包含数字日期的列更改为文本形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52473631/

相关文章:

python - 简单抓取 youtube xml 以获得 Python 视频列表

python与 Pandas : file size (44546) not 512 + multiple of sector size (512)

python - 如果满足条件则添加空行 Pandas

python - 查找特定数字的完整行

python - 模块命名与库相同

python - 在 python 中解析以分号分隔的文件以创建 CSV

python - 关闭无限异步生成器

python - 带 matplotlib 的双图 : Attribute error

r - 如何从R中的列中的每一行中删除前三个字符

R列表到单个数据框单元格