Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 将数据框的列打印到单独的文件+;带有日期时间的数据帧(分钟/秒)_List_Python 2.7_Datetime_Pandas_Append - Fatal编程技术网

List 将数据框的列打印到单独的文件+;带有日期时间的数据帧(分钟/秒)

List 将数据框的列打印到单独的文件+;带有日期时间的数据帧(分钟/秒),list,python-2.7,datetime,pandas,append,List,Python 2.7,Datetime,Pandas,Append,我试图在Python2.7中打印熊猫数据框的列以分隔*.csv文件 使用这段代码,我得到了一个包含4列和日期索引的数据框: import pandas as pd import numpy as np col_headers = list('ABCD') dates = pd.date_range(dt.datetime.today().strftime("%m/%d/%Y"),periods=rows) df2 = pd.DataFrame(np.random.randn(10, 4), i

我试图在Python2.7中打印熊猫数据框的列以分隔*.csv文件

使用这段代码,我得到了一个包含4列和日期索引的数据框:

import pandas as pd
import numpy as np

col_headers = list('ABCD')
dates = pd.date_range(dt.datetime.today().strftime("%m/%d/%Y"),periods=rows)
df2 = pd.DataFrame(np.random.randn(10, 4), index=dates, columns = col_headers)
df = df2.tz_localize('UTC') #this does not seem to be giving me hours/minutes/seconds
然后删除索引并将其设置为单独的列:

df['Date'] = df.index
col_headers.append('Date') #update the column keys
此时,我只需要将dataframe的所有5列打印到单独的文件中。以下是我尝试过的:

for ijk in range(0,len(col_headers)):
    df.to_csv('output' + str(ijk) + '.csv', columns = col_headers[ijk])
我收到以下错误消息:

KeyError: "[['D', 'a', 't', 'e']] are not in ALL in the [columns]"
如果我说:

for ijk in range(0,len(col_headers)-1):
然后它工作,但不打印“日期”束。那不是我想要的。我还需要打印日期列

问题:

  • 如何将“日期”列打印到*.csv文件中
  • 我如何用小时、分和秒来计算时间?如果 行数从10更改为5000,那么秒数是否会从数据帧的一行更改为下一行
编辑: -回答Q2()==>对于我的特定代码,请参见以下内容:

dates = pd.date_range(dt.datetime.today().strftime("%m/%d/%Y %H:%M"),periods=rows)

我不太理解您的逻辑,但以下是一种更简单的方法:

for col in df:
    df[col].to_csv('output' + col + '.csv')
例如:

In [41]:

for col in df2:
    print('output' + col + '.csv')
outputA.csv
outputB.csv
outputC.csv
outputD.csv
outputDate.csv

埃德彻姆:我想你指的是for循环中的逻辑。我的意思是:col_headers列表包含所有列名。如果我一次循环一列(通过循环),并在每次迭代中输出到*.csv,那么我可以手动指定在每次迭代中打印哪个列。为此,我将循环计数器设置为从0(第一个列表元素)到最后一个循环元素的范围(0,len(col_headers))。此计数器规范中是否存在阻止它拾取最后一个列表元素(日期)的内容?问题是您正在生成从0到列列表len的范围,并使用索引(这是一个数字)将其索引回df,但这些列具有名称而不是索引,因此它将失败。我的回答不那么冗长,而是用一种更直观的方式来实现同样的目标伊莫德丘姆:是的,我明白你的意思。你的方法有效-我刚刚测试了它,它回答了我的问题。这肯定更简单。然而,让我困惑的是,为什么我的方法与“-1”(即拾取列标题A、B、C、D)一起工作,而在我删除“-1”(即拾取列标题A、B、C、D、日期)时不工作。这是我无法理解的部分???是的,列确实有名称,但是,使用我的方法,我只是在列名称之间循环-这应该适用于所有5列,如果它适用于4列的话。