从多个文件中选择两列,并希望将这些列按列合并为一个文件



我从多个文件中选择两列(如下所示(,这些列的行数不均匀。。

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)

相关内容

最新更新