要实现您提到的操作,可以按照下面的步骤进行。
1. **组合新的数据帧(df1, df2, df3)**:
- 从原始 `df` 中提取相应的列来创建新的数据帧。
- 重新命名各个数据帧中的列,然后连接成一个新的数据帧。
2. **合并新的数据帧与已有的 df_old**:
- 将 `df_old` 与由(df1, df2, df3)的组合结果进行外连接,以 `df_old` 为主。
以下是如何在 Python 中使用 Pandas 库来实现这些操作:
import pandas as pd
# 假设df是您现有的DataFrame
# 创建df1, df2, df3
df1 = df[[0, 1, 3, 4]]
df2 = df[[0, 7, 9, 10]]
df3 = df[[0, 13, 14, 16]]
# 重新命名列
df1.columns = ["备注", "牌号", "规格", "定额"]
df2.columns = ["备注", "牌号", "规格", "定额"]
df3.columns = ["备注", "牌号", "规格", "定额"]
# 合并df1, df2, df3
new_df = pd.concat([df1, df2, df3], ignore_index=True)
# 假设df_old是已有的DataFrame
# 合并df_old和new_df,以df_old为主
df_new = pd.merge(df_old, new_df, on=["备注", "牌号", "规格"], how='left')
# 现在df_new就是您所需要的最终结果
这个代码段演示了如何分割原始 `df` 并重新组合列,然后与 `df_old` 合并。确保在使用代码时将各个 DataFrame 的格式和列名正确设置。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |