Python 如何更改数据帧';将数字日期转换为文本形式的s列?

Python 如何更改数据帧';将数字日期转换为文本形式的s列?,python,pandas,dataframe,rows,Python,Pandas,Dataframe,Rows,我有一个这样的数据集 日期------F/R------S/R 2018年9月22日--72--------00 2018年9月21日----22----17 现在我要做的是,我想用文本格式替换日期,比如“9”我想要“9月”,而“22”我想要“星期六”。 首先,我尝试用这段代码将月份从数字改为文本,但失败了 import pandas as pd # Importing the dataset dataset = pd.read_csv('teer1_new1.csv') def f(x)

我有一个这样的数据集

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

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

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

现在我要做的是,我想用文本格式替换日期,比如“9”我想要“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')

是的,我的dataframe date列中有很多行,谢谢提醒。

您需要先将日期转换为日期时间-在or、last use和
dataset['Date'] = pd.to_datetime(dataset['Date'])
## returns month
dataset['monthname'] = dataset['Date'].dt.month_name()
## returns day
dataset['day'] = dataset['Date'].dt.dayofweek()

## creating a map of dayofweek to day
s = {6 : 'Sunday', 0: 'Monday', 1: 'Tuesday', 
     2: 'Wednesday', 3: 'Thursday', 4: 'Friday', 5: 'Saturday'}
s = pd.Series(s)
dataset['dayname'] = dataset['day'].map(s)
:


对于此备选方案#df['Date']=pd.to_datetime(df['Date'],format='%m/%d/%Y'),控制台表示格式不匹配。如果我在没有格式参数的情况下运行这个替代方案,那么一切都会顺利。@AdityaMandal-然后尝试
df['Date']=pd.to_datetime(df['Date'])
Yeah@jezrael我就是这样使用它的,非常感谢。@AdityaMandal-没问题,需要
df['Date3']=df['Date'].dt.year
@AdityaMandal-是的,这里有一个问题,只有一个答案应该被接受;)
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