Python 将数据写入csv时的默认列名

Python 将数据写入csv时的默认列名,python,pandas,export-to-csv,Python,Pandas,Export To Csv,我正在尝试使用to_csv函数编写一个熊猫df作为csv文件。写完之后,我注意到pandas会自动创建默认列名,如下所示 _c0 _c1 _c2 _c3 _c4 _c5 0 A B C D E F 1 a b c d e f 2 g h i j k

我正在尝试使用to_csv函数编写一个熊猫df作为csv文件。写完之后,我注意到pandas会自动创建默认列名,如下所示

    _c0     _c1     _c2     _c3     _c4     _c5

0    A       B       C       D       E        F
1    a       b       c       d       e        f     
2    g       h       i       j       k        l
我的实际列名是[A、B、C、D、E、F]。下面是我的写函数

df.to_csv(file_name,encoding='utf-8',header=True,index=False,columns=[A,B,C,D,E,F])
我期望的格式如下

     A       B       C       D       E        F 
0    a       b       c       d       e        f 
1    g       h       i       j       k        l
我可以通过读取创建的csv后执行以下行来获得预期的格式

df.columns = df.iloc[0]
df = df.iloc[1:]
但是,在创建csv之前,是否有任何方法可以避免创建这些默认列名


提前谢谢

我想这适合你:

import pandas as pd
df = pd.DataFrame([{"A":"a", "B":"b", "C":"c", "D":"d", "E":"e", "F":"f"},
                    {"A":"g", "B":"h", "C":"i", "D":"j", "E":"k", "F":"l"}])
df.to_csv(file_path, index=True)

我认为您的问题在于您使用的是
columns
参数。

您可以使用
df.to\u csv(header=…)
设置自定义标头。 如果不需要,只需输入
header=False

我认为“问题”与导入数据帧的时间有关。您没有正确设置标题。我认为您在df中找不到所需的列名称,是吗?你是怎么进口的


如果您是从csv中读取数据并使用pd.read\u csv,则在使用
df.to\u csv()
方法之前,请确保header=0

数据帧的外观如何?除非您正在编写列的子集,否则不需要包含
columns=…
。@AnuragDabas在使用df.to\u csv()之前dataframe看起来像没有默认列名称的预期格式Hi Angelo。谢谢你的回答。这在我的情况下是不可行的,因为我正在动态创建数据帧,其中有数百行。@Sooraj这没关系。你只需要最后一行。我把其他行放在这里是为了制作一个可复制的示例,而不是为了你的代码。但事实证明,我的写操作实际上很好,问题是在导入输出csv时。再次感谢!实际上,我可以在iloc[0]中找到所需的列,而实际的列名是_c0,_c1,。。。我尝试使用pd.read_csv,header=False,但没有luckheader=False意味着pandas将在数据框中放置默认列名,这不是您想要的。Header=0将使用csv的第一行查找列名。您的csv是如何设置的?@sooraj导入时确实存在问题。我使用pyspark导入这个csv,在读取csv时,我必须明确提到header=True。多谢!