Python:将数据帧打印到csv

Python:将数据帧打印到csv,python,dataframe,Python,Dataframe,我目前正在使用此代码: import pandas as pd AllDays = ['a','b','c','d'] TempDay = pd.DataFrame( np.random.randn(4,2) ) TempDay['Dates'] = AllDays TempDay.to_csv('H:\MyFile.csv', index = False, header = False) 但当它打印时,它会在日期之前打印带有标题行的数组。我正在寻求打印TemperatureArray之前的

我目前正在使用此代码:

import pandas as pd
AllDays = ['a','b','c','d']
TempDay = pd.DataFrame( np.random.randn(4,2) ) 
TempDay['Dates'] = AllDays
TempDay.to_csv('H:\MyFile.csv', index = False, header = False)
但当它打印时,它会在日期之前打印带有标题行的数组。我正在寻求打印TemperatureArray之前的日期,并且没有标题行

编辑: 该文件的TemperatureArray后跟日期:[TemperatureArray,Date]

-0.27724356949570034,-0.3096554106726788,a
-0.10619546908708237,0.07430127684522048,b
-0.07619665345406437,0.8474460146082116,c
0.19668718143436803,-0.8072994364484335,d
我正在寻找打印:[日期温度日期]

a,-0.27724356949570034,-0.3096554106726788
b,-0.10619546908708237,0.07430127684522048
c,-0.07619665345406437,0.8474460146082116
d,0.19668718143436803,-0.8072994364484335
该方法有一个关键字参数,
header=True
,可以关闭该参数以禁用头

然而,它有时不起作用(根据经验)。 将它与
index=False
结合使用应该可以解决您的问题

例如,此代码段可以解决您的问题:

TempDay.to_csv('C:\MyFile.csv', index=False, header=False)
下面是一个完整的示例,显示它如何禁用标题行:

>>> import pandas as pd
>>> import numpy as np
>>> df = pd.DataFrame(np.random.randn(6,4))
>>> df
          0         1         2         3 
0  1.295908  1.127376 -0.211655  0.406262 
1  0.152243  0.175974 -0.777358 -1.369432 
2  1.727280 -0.556463 -0.220311  0.474878 
3 -1.163965  1.131644 -1.084495  0.334077 
4  0.769649  0.589308  0.900430 -1.378006 
5 -2.663476  1.010663 -0.839597 -1.195599 

>>> # just assigns sequential letters to the column
>>> df[4] = [chr(i+ord('A')) for i in range(6)]
>>> df
          0         1         2         3  4
0  1.295908  1.127376 -0.211655  0.406262  A
1  0.152243  0.175974 -0.777358 -1.369432  B
2  1.727280 -0.556463 -0.220311  0.474878  C
3 -1.163965  1.131644 -1.084495  0.334077  D
4  0.769649  0.589308  0.900430 -1.378006  E
5 -2.663476  1.010663 -0.839597 -1.195599  F

>>> # here we reindex the headers and return a copy
>>> # using this form of indexing just requires you to provide
>>> # a list with all the columns you desire and in the order desired
>>> df2 = df[[4, 1, 2, 3]]
>>> df2
   4         1         2         3
0  A  1.127376 -0.211655  0.406262
1  B  0.175974 -0.777358 -1.369432
2  C -0.556463 -0.220311  0.474878
3  D  1.131644 -1.084495  0.334077
4  E  0.589308  0.900430 -1.378006
5  F  1.010663 -0.839597 -1.195599

>>> df2.to_csv('a.txt', index=False, header=False)
>>> with open('a.txt') as f:
...     print(f.read())
... 
A,1.1273756275298716,-0.21165535441591588,0.4062624848191157
B,0.17597366083826546,-0.7773584823122313,-1.3694320591723093
C,-0.556463084618883,-0.22031139982996412,0.4748783498361957
D,1.131643603259825,-1.084494967896866,0.334077296863368
E,0.5893080536600523,0.9004299653290818,-1.3780062860066293
F,1.0106633581546611,-0.839597332636998,-1.1955992812601897
如果需要动态调整列,并将最后一列移到第一列,可以执行以下操作:

# this returns the columns as a list
columns = df.columns.tolist()
# removes the last column, the newest one you added
tofirst_column = columns.pop(-1)
# just move it to the start
new_columns = [tofirst_column] + columns

# then you can the rest
df2 = df[new_columns]

这只允许您获取当前列列表,从当前列构造Python列表,并重新索引标题,而无需事先了解标题。

谢谢您的建议。更大的问题是,它打印的日期在TemperatureArray之后,但我需要TemperatureArray之前的日期。你能提供一个小样本吗?我以为你主要是想关掉标题。除非你能提供一个小的数据框作为例子,否则调试会有点困难。或者你只是在寻找按时间顺序排列的“之前”,即温度数组中日期之前发生的所有日期)。我更新了上面的代码以显示我在寻找什么。ThanksEdited,我正是这样做的:我在Pandas中使用列重新排序来返回数据帧的副本,然后我们将其转储到文件中,而不包含标题。