我从多个文件中选择两列(如下所示(,这些列的行数不均匀。。
date v1
2020/08/06 220
2020/08/06 2560
.... ....
.... ...
我写过这样的代码,它按行合并所有这两列,但我希望按列合并。
import os
import pandas as pd
import glob
import fnmatch
files1 = os.listdir('G:/Banknifty/2020/August/Expiry 06th August/')
pattern = '*CE.csv'
pattern1 = '*PE.csv'
matchce = fnmatch.filter(files1,pattern)
matchpe = fnmatch.filter(files1,pattern1)
path = 'G:/Banknifty/2020/August/Expiry 06th August/'
df = pd.DataFrame()
for m in matchce:
dfs = pd.read_csv(path+m)
dfs.columns = ['name', 'date', 'time', 'open', 'high', 'low', 'close', 'v1']
dfs.set_index('date', inplace=True)
df1 = dfs.loc['2020/08/06', 'v1']
df1 = pd.DataFrame(df1)
df = pd.concat([df1,df],axis=0,ignore_index=True)
print(df)
我尝试过使用axis=1,但是它抛出了一个错误。
那么我如何将这些列按列合并到一个文件中呢??
我想要这样,
--File1 columns- -file 2 columns- -file 3- column- ....
Date v1 date v1 Date v1 Date v1 ....
2020/08/06 220 2020/08/06 230 2020/08/06 250 2020/08/06 2600 ....
..... ... ..... .. ..... ... .... .. ...
让我们试试:
df.stack().to_frame().reset_index(level=0,drop=True).T
输出:
date v1 date v1
0 2020/08/06 220 2020/08/06 2560
这是索引的问题,已经解决了。
这是代码,
import os
import pandas as pd
import glob
import fnmatch
files1 = os.listdir('G:/Banknifty/2020/August/Expiry 06th August/')
pattern = '*CE.csv'
pattern1 = '*PE.csv'
matchce = fnmatch.filter(files1,pattern)
matchpe = fnmatch.filter(files1,pattern1)
path = 'G:/Banknifty/2020/August/Expiry 06th August/'
df = pd.DataFrame()
for m in matchce:
dfs = pd.read_csv(path+m)
dfs.columns = ['name', 'date', 'time', 'open', 'high', 'low', 'close', 'v1']
dfs.set_index('date', inplace=True)
df1 = dfs.loc['2020/08/06', 'v1']
df1 = pd.DataFrame(df1).reset_index(drop=True)
df=pd.concat([df, df1], axis=1, ignore_index=True)