要将原 DataFrame 中的数据迁移到一个新的 DataFrame,并按照你所描述的格式进行处理,可以使用 Pandas 的 `concat()` 方法来完成两个不同的拼接。以下是实现这一工作流程的代码示例:
### 示例代码
import pandas as pd
# 假设原始数据框架为 original_df
data = {
"字段1": ["A1", "A2", "A3"],
"字段2": ["B1", "B2", "B3"],
"字段3": ["C1", "C2", "C3"],
"字段4": ["D1", "D2", "D3"],
"字段5": ["E1", "E2", "E3"]
}
original_df = pd.DataFrame(data)
# 创建一个空的 DataFrame 用于存储迁移的数据
new_df = pd.DataFrame(columns=["费用类型", "字段1", "字段2", "字段3", "字段4", "字段5"])
# 处理销售费用
sales_data = {
"费用类型": ["销售费用"] * len(original_df),
"字段1": original_df["字段1"],
"字段2": original_df["字段2"],
"字段3": original_df["字段3"],
}
sales_df = pd.DataFrame(sales_data)
# 处理管理费用
management_data = {
"费用类型": ["管理费用"] * len(original_df),
"字段1": original_df["字段1"],
"字段2": original_df["字段2"],
"字段4": original_df["字段4"],
"字段5": original_df["字段5"],
}
management_df = pd.DataFrame(management_data)
# 将两个 DataFrame 合并到新的 DataFrame
new_df = pd.concat([sales_df, management_df], ignore_index=True)
# 查看结果
print(new_df)
### 代码解释
1. **创建原始 DataFrame**:在这个例子中,我们创建了一个名为 `original_df` 的 DataFrame,模拟原始数据。
2. **创建目标 DataFrame**:我们定义了一个新的 DataFrame `new_df`,并指定列名。
3. **处理销售费用**:
- 创建一个字典 `sales_data`,其中包含“销售费用”类型和原 DataFrame 中相关字段。
- 将字典转化为 DataFrame `sales_df`。
4. **处理管理费用**:
- 创建另一个字典 `management_data`,其中包含“管理费用”类型和原 DataFrame 中相关字段。
- 将字典转化为 DataFrame `management_df`。
5. **合并 DataFrame**:
- 使用 `pd.concat()` 将两个 DataFrame (`sales_df` 和 `management_df`)合并到 `new_df` 中,并设置 `ignore_index=True`,以确保索引是连续的。
6. **输出结果**:打印最终的 `new_df`,显示迁移后的所有数据。
### 输出示例
运行上述代码后,你能得到如下输出:
费用类型 字段1 字段2 字段3 字段4 字段5
0 销售费用 A1 B1 C1 NaN NaN
1 销售费用 A2 B2 C2 NaN NaN
2 销售费用 A3 B3 C3 NaN NaN
3 管理费用 A1 B1 NaN D1 E1
4 管理费用 A2 B2 NaN D2 E2
5 管理费用 A3 B3 NaN D3 E3
这样就成功将原 DataFrame 中的数据按照要求迁移到了新的 DataFrame 中。如果你对代码或流程有任何疑问,请随时告诉我!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |