之前用pandas写的时候用df[yesterday].values.tolist都可以运行,同样的代码,上面改了一点逻辑用报错 ,下面不报错 。
这是报错段落的代码
df_all = pandas.DataFrame(list(data),columns=["ta","aincome","a_pay","num","a_num","tb","bincome","b_pay","num","b_num"])
print("同比数据转换成功")
df_all['ta'] = pandas.to_datetime(df_all['ta'])
# 将日期设置为索引 去掉默认索引
df_all = df_all.set_index("ta")
df_all['b_pay'] = df_all['b_pay'].fillna(method='ffill')
df_all['b_num'] = df_all['b_num'].fillna(method='ffill')
df_all['pay_rate'] = round(((df_all['a_pay'] - df_all["b_pay"]) / abs(df_all['b_pay'])) * 100, 2)
df_all['num_rate'] = round(((df_all['a_num'] - df_all["b_num"]) / df_all['b_num']) * 100, 2)
df_all.pay_rate = df_all['pay_rate'].astype(str).add('%')
df_all.num_rate = df_all['num_rate'].astype(str).add('%')
print(df_all.to_string())
print("同比数据处理采集成功")
warnings.simplefilter("ignore")
df_all = df_all[['pay_rate','num_rate']].copy()
print(df_all.to_string())
df_all = df_all[yesterday].values.tolist()
这是同样代码但是不报错
df = pandas.DataFrame(list(data1),
columns=['日期', '合计绝对收益', '合计安装数', '合计花费', '合计付费', '360安装', '360花费', '360付费', '360绝对收益',
'百度安装', '百度花费', '百度付费', '百度绝对收益', '搜狗安装', '搜狗花费', '搜狗付费', '搜狗绝对收益', 'web360花费',
'web360付费', 'web360绝对收益', 'web百度花费', 'web百度付费', 'web百度绝对收益'])
print("本月数据转换成功")
df.insert(1, "累计花费", "", allow_duplicates=False)
df.insert(2, "累计安装", "", allow_duplicates=False)
df.insert(3, "累计付费", "", allow_duplicates=False)
df.insert(4, "月度收益", "", allow_duplicates=False)
# 对其他字段 累加计算
df["累计花费"] = df["合计花费"].cumsum()
df["累计安装"] = df["合计安装数"].cumsum()
df["累计付费"] = df["合计付费"].cumsum()
df["月度收益"] = df["合计绝对收益"].cumsum()
# 将日期转换为时间类型
df['日期'] = pandas.to_datetime(df['日期'])
# 将日期设置为索引 去掉默认索引
df = df.set_index("日期")
# 整体结果倒序
df = df.iloc[::-1]
# 取易亏账户绝对收益
df1 = df[['搜狗绝对收益', 'web360绝对收益', 'web百度绝对收益']].copy()
# 转换数据类型为int,让数据避免小数点
df1['搜狗绝对收益'] = df1['搜狗绝对收益'].astype('int64')
df1['web360绝对收益'] = df1['web360绝对收益'].astype('int64')
df1['web百度绝对收益'] = df1['web百度绝对收益'].astype('int64')
warnings.simplefilter("ignore")
# 限定时间为昨天 并转换为列表套字典
df1 = df1[yesterday]
df1 = df1.to_dict('records')
这是为什么呢