2023-03-29
2023-03-28 本文已影响0人
文子轩
import pandas as pd
# 构造示例数据
data = {'Category': ['A', 'B', 'C', 'A', 'B', 'C', 'A', 'B', 'C', 'A', 'B'],
'Value': [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100]}
# 将数据转换为 DataFrame
df = pd.DataFrame(data)
# 计算 DataFrame 的行数
num_rows = len(df)
# 如果行数不能被 3 整除,则在行末添加空值,使得最后一组可以有三行
if num_rows % 3 != 0:
num_empty_rows = 3 - num_rows % 3
df = pd.concat([df, pd.DataFrame({'Category': [''] * num_empty_rows, 'Value': [None] * num_empty_rows})], ignore_index=True)
# 添加一个新列,表示每三行的分组
df['Group'] = [i // 3 for i in range(len(df))]
# 使用pivot函数进行转换
pivot_df = df.pivot(index='Group', columns='Category', values='Value')
pivot_df.reset_index(drop=True, inplace=True)
print("转换后的DataFrame:")
print(pivot_df)