用125,000+列和两行写一个标题

时间:2017-06-25 13:37:47

标签: python csv pandas

Excel将任何csv文件的列限制在3000左右。我正在尝试按以下格式编写125,000列:

  • O1
  • MA1
  • MI1
  • C1
  • V1
  • ...
  • O125000
  • MA125000
  • MI125000
  • C125000
  • V125000
import pandas as pd
def formatting(i):
    return tuple(map(lambda x: x+str(i), ("O", "MA", "MI", "C", "V")))
l = []
for i in range(1, 125001):
    l.extend(formatting(i))
f = pd.read_csv('file.csv')
f.columns = l
f.to_csv('new_file.csv')

我尝试编写这个脚本但是它太慢而且不一致,因为它容易出错。但是,您可以从这个脚本中了解我想要做的事情。

我用来生成csv(包含2行和125,000+列)的当前脚本如下:

import pandas as pd
import glob

allfiles = glob.glob('*.csv')
index = 0

def testing(file):
    #file = file.loc[:,'Open':'Volume']
    file = file.values.reshape(1, -1)
    return file


for _fileT in allfiles:
    nFile = pd.read_csv(_fileT, header=0, usecols=range(1,6))
    fFile = testing(nFile)
    df = pd.DataFrame(fFile)
    new_df = df.iloc[:125279]
    new_df = new_df.shift(1, axis=1)
    new_df.to_csv('HeadCSV/FinalCSV.csv', mode='a', index=False, header=0)

此脚本读取目录中的两个csv文件,并将它们聚合到一个文件中,但是如何确保它打印上面提到的标题并标记它打印出来的两行?

我基本上喜欢以最合乎逻辑的方式组合这两个脚本。

我的想法是编写标题,然后将文件中的所有数据放入数据框中,然后按照提到的方式进行行索引,最后将其全部放入CSV

0 个答案:

没有答案