系列的真值是模棱两可的 - 将系列月份名称转换为月份数量

问题描述 投票:1回答:1

我的数据框中有一列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,我的没有使用。

python pandas
1个回答
1
投票

尝试使用map / replace略有不同的方法;

mapping = {v : k for k, v in enumerate(cal.month_abbr)}
df['Month_Num'] = df['Month'].map(mapping)   

对于具有完整月份名称的列,请改用cal.month_name

© www.soinside.com 2019 - 2024. All rights reserved.