我有一个这样的数据集
日期 ----------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_dates
或pandas.to_datetime
,上次使用Series.dt.month_name
和
Series.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/