Skip to main content
 首页 » 编程设计

python之使用/Python 附加到 Pandas 数据框时保留 header

2025年05月04日15myhome

因此,我正在解析许多文件中包含的数据,遍历它们并将某些元素存储在列表中,然后使用 Python 使用 Pandas 将每个结果列表附加到数据框。

它的工作原理,除了我无法弄清楚如何在附加时保留标题行。它要么消失,要么随每次追加而重复。

以下代码作为最新代码的示例:

import pandas as pd 
 
for i in range(1,4): 
    data = [{'name': 'Company'+str(i), 'city': 'New York'}] 
 
    stuff = [] 
    for element in data: 
        stuff.append(element) 
 
    df = pd.DataFrame(columns=["name", 
                               "city"]) 
 
    for record in stuff: 
        df = df.append(record, ignore_index=True) 
 
    df.to_csv('test.csv', mode='a', header=False, index=False) 

使用此代码,输出(csv 文件)为:

Company1    New York 
Company2    New York 
Company3    New York 

但我正在寻找的输出是:

name        city 
Company1    New York 
Company2    New York 
Company3    New York 

谢谢!

请您参考如下方法:

但是你设置了header=False:

df.to_csv('test.csv', mode='a', header=False, index=False) 

你应该这样做:

df.to_csv('test.csv', mode='a', header=True, index=False) 

您只需要在第一次迭代时将其设置为True,然后在后续迭代中将其设置为False

基本上您只需执行以下操作:

# add this outside your for loop 
writeHeader = True 
 
# use the following where you write to csv 
if writeHeader is True: 
    df.to_csv('test.csv', mode='a', header=True, index=False) 
    writeHeader = False 
else: 
    df.to_csv('test.csv', mode='a', header=False, index=False) 

或类似的

所以完整的东西看起来像:

import pandas as pd 
writeHeader = True 
 
for i in range(1,4): 
    data = [{'name': 'Company'+str(i), 'city': 'New York'}] 
 
    stuff = [] 
    for element in data: 
        stuff.append(element) 
 
    df = pd.DataFrame(columns=["name", 
                               "city"]) 
 
    for record in stuff: 
        df = df.append(record, ignore_index=True) 
 
    if writeHeader is True:     
        df.to_csv('test.csv', mode='a', header=True, index=False) 
        writeHeader = False 
    else: 
        df.to_csv('test.csv', mode='a', header=False, index=False)