我的数据框中有一列df['Month']
,它有月份名称:1月,2月等。
我想将这些转换为月号:1,2等。
在我的熊猫中,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,我的没有使用。
尝试使用map
/ replace
略有不同的方法;
mapping = {v : k for k, v in enumerate(cal.month_abbr)}
df['Month_Num'] = df['Month'].map(mapping)
对于具有完整月份名称的列,请改用cal.month_name
。