我的数据框中有一列df['Month']
,其中包含月份名称:1月,2月等。
我想将这些转换为月号:1,2等等。
在我的Pandas中,df['Month_Num'] = list(cal.month_abbr).index(df['Month'])
抛出错误:
系列的真值是模棱两可的。使用a.empty,a.bool(),a.item(),a.any()或a.all()。
熊猫:
import pandas as pd
import calendar as cal
df['Day'] = 1
# convert 'January' to 1
df['Month_Num'] = list(cal.month_abbr).index(df['Month'])
df['date_tw'] = ''
# Create date_time based on format `mm/dd/yy`:
df['date_tw'] = pd.to_datetime(df[['Month_Num', 'Day', 'Year']])
result_df = df
为什么会这样?我可以在其上找到的唯一数据是from here与比较运算符相关,我没有使用它。
答案 0 :(得分:1)
尝试使用map
/ replace
代替稍微不同的方法;
mapping = {v : k for k, v in enumerate(cal.month_abbr)}
df['Month_Num'] = df['Month'].map(mapping)
对于包含完整月份名称的列,请改用cal.month_name
。