我正在解析CSV文件,输出不符合预期。
输入:
| 优先|数据库名称|任务名称|分区|大小_gb|
| - -|- -|- -|- -|- -|
| 1|市场|tbl_市场|202301| 10|
| 1| Corp| tbl_corp1| 202301| 5|
| 1| Corp| tbl_corp1| 202302| 5|
| 1| Corp| tbl_corp1| 202303| 10|
| 1| Corp| tbl_corp2| 202301| 10|
| 1| Corp| tbl_corp3| 202302| 5|
| 1| Corp| tbl_corp3| 202303| 3|
| 1| Corp| tbl_corp3| 202304| 2|
| 2|销售|tbl_sales1| 202301| 1|
| 3|销售|tbl_sales2| 202302| 5|
预期输出:
| 优先|数据库名称|任务名称|分区|t尺寸|
| - -|- -|- -|- -|- -|
| 1|市场|tbl_市场|202301| XL|
| 1| Corp| tbl_corp1| 202301; 202302| XL|
| 1| Corp| tbl_corp1| 202303| XL|
| 1| Corp| tbl_corp2| 202301| XL|
| 1| Corp| tbl_corp3| 202302; 202303; 202304| XL|
| 2|销售|tbl_sales1| 202301| S|
| 3|销售|tbl_sales2| 202302| M|
以下是我尝试过的代码。
import os
import pandas as pd
import numpy as np
df = pd.read_csv("F:\\sales_data.csv", header=0)
print(df)
df = pd.DataFrame(df.pivot_table(
index=['priority', 'db_name', 'tbl_name', 'size_gb'],
values=['partition', 'size_gb'],
aggfunc={'partition': lambda x: ";".join(str(v) for v in x), 'size_gb': 'sum'}).rename(
columns={'size_gb': 'sum_gb'}).to_records())
df['t_size'] = np.where(df['sum_gb'] >= 10, 'XL',
np.where(df['sum_gb'] < 3, 'S', 'M'))
df.drop(columns=['size_gb', 'sum_gb'], inplace=True)
print(df)
字符串
运行了上面的代码,但输出不是预期的。感谢任何输入
预期输出:
的数据
1条答案
按热度按时间rkttyhzu1#
您确定预期的输出是正确的吗?
字符串
输出量:
型