我有许多具有一列数??据的文本文件,不同的dtype(float64,日期),内部没有标题.
我正在尝试编写以下代码:
?-获取所有不带扩展名的文件名->创建一个列表(这可行!)
?-读取一个目录中的所有文件,并将它们合并为具有一个编号索引的一个数据帧.
我的代码:
filelist = os.listdir(path) #Make a file list
file_names=[os.path.splitext(x)[0] for x in filelist] #Remove file extension
尝试过此方法(第一种选择):
df_list = [pd.read_table(file) for file in filelist]
df = pd.concat(df_list,ignore_index=True)
…但是我从6个文件中得到3列,数据完全混乱.
还尝试了此方法(第二个选项):
df=pd.DataFrame(columns=file_names)
for file in filelist:
frame=pd.read_csv(file)
df=df.append(frame, ignore_index=True)
…这也不起作用.
任何意见,将不胜感激.
输入项
Q * .txt文件的开头仅是零(大约100个值),并且在此数字之后显示.
Q1.txt Q2.txt T21 T22
0 0 51.06 77.46
0 0 50.32 77.33
0 0 50.90 77.45
当我运行“第一个选项”时,我得到:
filelist
>>>['Q1.txt', 'Q2.txt','T21.txt', 'T22.txt']
file_names
>>>['Q1', 'Q2','T21', 'T22']
df.dtypes
>>>0 object
>>>51.06 object
>>>77.46 object
>>>dtype: object
输出文件
0 51.06 77.46
0 0
1 0
2 0
看起来前2个文件(开头是0的文件)在一列中.第二和第三是文件T21和T22的第一值.
感谢@Viktor Kerkez,我将header = None添加到了pd.read_table中,现在所有文件都放在一列dtype = object中.
如何将所有文件拆分为许多列?