python中groupby输出数据和源数据不符
请教大佬、师兄、师姐为啥我用groupby输出的数据和源数据对不上哦?
差十万八千里
附件很小,才几KB,论坛上传不了,只能传百度网盘,请大神帮忙指点指点,多谢!!{:1_893:}
链接:https://pan.baidu.com/s/1PoTUfCYaLT2rpem5zuLGGg
提取码:rvb1
import numpy as np
import pandas as pd
import os
# 遍历数据文件夹中所有文件的文件名,得到清单列表file_list
file_list = []
for root, dirs, files in os.walk("E:/GP数据分析/123/"):# 填写数据文件夹的路径
if files:
for f in files:
if ".csv" in f:
file_list.append(f.split(".csv"))
# 根据上一步得到的文件名列表,遍历所有文件,放入output变量中
output = pd.DataFrame()
# 遍历每个文件
for f in file_list:
code = f.split()[-1].split()# 读取日期代码
print(code)
# 读取数据
stock_data = pd.read_csv('E:/GP数据分析/123/' + f + '.csv', parse_dates=)
# 计算并输入到New文件
l = len(output)
output.loc = code# 将遍历的文件名输出到新文件”日期“列;
output.loc = stock_data['quantity'].sum()
# date = stock_data.groupby('quantity')['category'].sum() # 按照类型分类,并求分类后数量和
output.loc = stock_data.groupby('category')['quantity'].apply(
lambda i: i.iloc if len(i) > 1 else np.nan).sum()
output.loc = stock_data.groupby('category')['quantity'].apply(
lambda i: i.iloc if len(i) > 1 else np.nan).sum()
output.loc = stock_data.groupby('category')['quantity'].apply(
lambda i: i.iloc if len(i) > 1 else np.nan).sum()
# 输出每个文件的计算结果到新文件中
output.to_csv('E:/GP数据分析/NEW.csv', index=False, encoding='gbk')
print(output)
lizy169 发表于 2021-11-13 15:56
谢谢!
去掉0后,总数量是对了,但3个分类的数据还是不对,正确的应该是3个分类的SUM=总数量才对。
还 ...
最后分类的那三行代码替换为这个
output.loc] = stock_data.groupby('category')['quantity'].apply(sum).to_list()
如果只需要其中某一类,就按下面的方式按需开关代码吧
output.loc = stock_data.groupby('category')['quantity'].apply(sum)
output.loc = stock_data.groupby('category')['quantity'].apply(sum)
output.loc = stock_data.groupby('category')['quantity'].apply(sum) 貌似是groupby字段写错了
试试date = stock_data.groupby(stock_data['quantity']) 现在这个PYTHON还是有很大市场。 读取csv的时候parse_dates=将quantity转换为object了,去掉这个参数读取为int就OK了 choolyee 发表于 2021-11-12 23:56
貌似是groupby字段写错了
试试date = stock_data.groupby(stock_data['quantity'])
谢谢你的回复,我按照你的方法试了,还是不行, cqfcy 发表于 2021-11-13 10:18
读取csv的时候parse_dates=将quantity转换为object了,去掉这个参数读取为int就OK了
谢谢!
去掉0后,总数量是对了,但3个分类的数据还是不对,正确的应该是3个分类的SUM=总数量才对。
还有,如果我只要输出其中一个类的数据,其它两个类的不需要输出显示出来,该怎样弄?
cqfcy 发表于 2021-11-12 22:39
最后分类的那三行代码替换为这个
output.loc ...
非常感谢你!
谢谢!!
{:1_893:}{:1_893:}{:1_893:}
页:
[1]