我每月有 20 到 300 个 csv 文件,我需要从文件中获取总体积 [m3],但考虑到所需数据的性质,我需要能够对 csv 的总和进行分类一个月内的配方名称下的文件,可以通过在文件夹中设置月份的csv文件来固定时间范围,但需要读取配方名称并与总体积[m3]排序
目前我还没有找到一种方法来做到这一点,我目前所做的只是读取文件......
def read_csv_files(folder_path):
# Get a list of all CSV files in the specified folder
csv_files = [f for f in os.listdir(folder_path) if f.endswith(".csv")]
for csv_file in csv_files:
file_path = os.path.join(folder_path, csv_file)
read_csv_file(file_path)
def read_csv_file(file_path):
test = pd.read_csv(file_path, sep='";', header=[0, 13], nrows=0, engine='python', encoding='ANSI')
print(test)
folder_path = "C:\\Users\\nw\\Documents\\Mini projects\\CSV"
read_csv_files(folder_path)
我的csv文件是这样的:
配方;水 批次号;99 订单号;3 序列号;F1200 1406545 公司;卡 买方; 卡车号; 职位名称;
批量开始;DT#2023-10-30-12:05:01 批次结束;DT#2023-10-30-12:07:57 混合时间[s];12 行为。 WCT;0.0 设置页数。 WCT;0.0 总体积[m];0.1 总重量[kg];2.2 具体型号; 强度等级; 稠度范围; 最大的颗粒; 水泥类型; 添加剂; 混合物; 最后一批订单;TRUE 手动激活;TRUE 警报: ERROR_RecycleValve_PosMixerNotOn ERROR_bDOSING_TOLERANCE_WATER1 额外文本;
尝试将其添加到从此处的另一篇文章中找到的列表/数组中,但由于我的数据是以与普通 csv 不同的方式制作的,所以我没有从中真正得到什么
我已经厌倦了遵循这里另一篇文章的示例,但是按照我的 csv 文件的制作方式,它并没有使这种方式成为可能
如果没有数据样本,真的很难提供帮助。
首先您需要创建一个新的月份列。我假设您从“批量开始”中获取它,并且格式是字符串:
df['month'] = df['Batch start'].str.split('-')[1]
现在您可以使用
groupby
按食谱和月份求和:
df.groupby(['Recipe', 'Month']).sum()
让我知道这是否对您有用