我有许多文本文件,其中包含一列数据,不同的 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。
如何将所有文件拆分为多列?