为了账号安全,请及时绑定邮箱和手机立即绑定

值错误:。使用 a.empty、a.bool()、a.item()、a.any()

值错误:。使用 a.empty、a.bool()、a.item()、a.any()

忽然笑 2021-10-19 10:44:35
我使用 CSV 文件作为输入并生成 JSON 格式文件以输入 kafka 主题df = pd.read_csv(csv_file, delimiter=",",                 dtype={'E': 'S10', 'C': 'S10', 'Date': 'S10', 'TimeCode': 'S10',                          'Workrule': 'S10'})common.time_calc(df) #time_calc is the function from adf = df.drop(['Workrule'], axis=1)在我有的功能上def time_calc(df_entry):    if (df_entry['TimeCode'] == 'R') and (df_entry['Workrule'] == 'C'):        df_entry['TimeCode'] = 'A'    if df_entry['TimeCode'] in ['O', 'L']:        df_entry['TimeCode'] = 'O'我得到ValueError:系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。我尝试将代码修改为if (df_entry['TimeCode'] == 'R') & (df_entry['Workrule'] == 'C'):        df_entry['TimeCode'] = 'A'但仍然得到同样的错误。添加了以下内容,现在可以发布了。谢谢!json_data = df.to_json(orient='records')json_input = '{"value":' + json_data + '}'decodedJson = json.loads(json_input) for entry in decodedJson['value']: common.time_calc(entry) del entry['Workrule']
查看完整描述

2 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

您的函数time_calc将 aDataFrame作为参数。在部分中df_entry['TimeCode'] == 'R',当您将整个列与标量值进行比较时,您实际上计算了一个系列。


当您and对此使用逻辑时,python 会尝试计算boolean系列的等效项,从而引发异常。您实际打算做的是使用向量运算或循环遍历行。


固定代码的示例可以是(未测试):


def time_calc(df):

    df.loc[df['TimeCode'] == 'R' & df['Workrule'] == 'C', 'TimeCode'] = 'A'

    df.loc[df['TimeCode'].isin(['O', 'L']), 'TimeCode'] = 'O'


查看完整回答
反对 回复 2021-10-19
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

您正在将整个列与单个值进行比较df_entry['TimeCode'] =='R'。您需要逐行迭代以比较单列值或更好地使用np.where


def time_calc(df_entry):

    df_entry['TimeCode'] = np.where((df_entry['TimeCode'] == 'R') and (df_entry['Workrule'] == 'C'), 'A', df_entry['TimeCode'])

    df_entry['TimeCode'] = np.where(df_entry['TimeCode'] in ['O','L'], 'O', df_entry['TimeCode'])



查看完整回答
反对 回复 2021-10-19
  • 2 回答
  • 0 关注
  • 264 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号