首页 > 解决方案 > 使用 pandas 将独立标题添加到 csv 文件

问题描述

我有一个 csv 数据框,除了列之外,我想用一个额外的标题保存它。pandas 必须在没有标题的情况下读取我的文件:

pd.read_csv('file.csv', header=2)

编辑完 csv 文件后,我想用一个新的标题保存它,例如它应该看起来像这样:

no rows = 4
no cols = 3        
index, col1, col2, col3
0, A, B, C
1, D, E, F
2, G, H, I
3, J, L, M

但是根据文档( https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_csv.html) ,函数中的 header 参数to_csv似乎依赖于作为别名的列

标题会将每一行计为一个单元格,因此是 1col x 2row df。我考虑过附加这两个,但由于列不相等,它不起作用。有没有一种简单的方法可以将独立的标题添加到 csv 文件?

我找不到有这个问题的帖子,任何帮助将不胜感激!

标签: pythonpandascsvdataframeheader

解决方案


因此,当您想将文件without头读入 pandas 时。做:

df = pd.read_csv('file.csv', header=None)

现在,在 中进行各种处理后df,您可以根据自己的选择进行分配column_names,例如:

col_list = ['col1','col2','col3']
df.columns = col_list

现在,使用以下命令将其写df回 csv to_csv

df.to_csv('/new_file.csv', index=None, header=None)

您可以将 2 行标题粘贴到此文件的顶部,如下所示:

        with open('/new_file.csv', 'r+') as f:
        content = f.read()
        f.seek(0, 0)
        f.write('my_2-line_header' + '\n' + content)

希望这可以帮助。


推荐阅读