You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将列表或DataFrame追加到已有值的Pandas DataFrame末尾

Pandas DataFrame末尾追加数据解决方案

你当前的写法无法实现将df2完整追加到df末尾,核心原因有两点:一是你仅对counterparty_id单列的末尾位置赋值,无法新增整行数据,且赋值长度和位置不匹配;二是Pandas 1.4及以上版本已废弃append()方法,即使调用该方法也不会修改原DataFrame,必须接收返回值才会生成新的合并后对象。

修正后的核心代码

你可以直接替换原有代码中追加逻辑和存在问题的部分:

import pandas as pd
from pandas import DataFrame

# 原有读取csv、切分日期的代码保持不变
dataAlkuperainen = pd.read_csv("persons_customers_AT.csv", 
sep=";", dtype={"counterparty_id":str, "counterparty_firstname": str, "counterparty_lastname":str, 
"counterparty_type":str, "date_of_birth":str},  encoding='ISO-8859-1', engine = 'python')

dataAlkuperainen2 = pd.read_csv("Organisations_customers_AT.csv", 
sep=";", dtype={"counterparty_id":str, "organisation_name": str},  encoding='ISO-8859-1', engine = 'python')

dateOfBirth = dataAlkuperainen["date_of_birth"]

df = DataFrame(dataAlkuperainen, columns=[ "counterparty_id", "organisation_name" ,"counterparty_firstname", "counterparty_lastname", 
"counterparty_type", "vuosi", "kuukausi", "paiva"], dtype=object)

df2 = DataFrame(dataAlkuperainen2, columns=[ "counterparty_id", "organisation_name"], dtype=object)
# 修正:astype(str)需要赋值接收返回值才会生效
df = df.astype(str)

vuosi = []
kk = []
paiva = []
for x in dateOfBirth:
    vuosi.append(x[:4])
    kk.append(x[5:7])
    paiva.append(x[8:10])

df['vuosi'] = vuosi
df['kuukausi'] = kk
df['paiva'] = paiva

# -------------------追加逻辑修正开始-------------------
# 给df2补全和df一致的列,避免合并后列错位
for col in df.columns:
    if col not in df2.columns:
        # 缺失列默认设为空字符串,也可按需改为pd.NA
        df2[col] = ''
# 用pd.concat合并两个DataFrame,忽略原有索引避免重复
df = pd.concat([df, df2], ignore_index=True)
# -------------------追加逻辑修正结束-------------------

# 修正:导出文件名后缀应为.csv
export_csv = df.to_csv(r'./test.csv', index = None, sep=";", header=True, encoding="ISO-8859-1")
print(df2)
print(df)

内容的提问来源于stack exchange,提问作者Levsha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 10:12:03