Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 以列格式将多个txt文件中的行数据合并到单个数据帧中_Python_Pandas_Numpy - Fatal编程技术网

Python 以列格式将多个txt文件中的行数据合并到单个数据帧中

Python 以列格式将多个txt文件中的行数据合并到单个数据帧中,python,pandas,numpy,Python,Pandas,Numpy,我在每个文本文件中都有以下格式的行数据 文件1 Sample 1, 24/07/2017 13:26:08 0 Peak at 1219 , 1.864 1 Peak at 1092 , 0.412 2 Peak at 1358 , 1.661 文件2 Sample 2, 24/07/2017 14:28:15 0 Peak at 1219 , 1.544 1 Peak at 1092 , 0.315 2 Peak at 1358 , 1.564 文件3 Sam

我在每个文本文件中都有以下格式的行数据

文件1

   Sample 1, 24/07/2017 13:26:08
0  Peak at 1219 , 1.864
1  Peak at 1092 , 0.412
2  Peak at 1358 , 1.661
文件2

   Sample 2, 24/07/2017 14:28:15
0  Peak at 1219 , 1.544
1  Peak at 1092 , 0.315
2  Peak at 1358 , 1.564
文件3

   Sample 3, 24/07/2017 15:31:05
0  Peak at 1219 , 1.954
1  Peak at 1092 , 0.524
2  Peak at 1358 , 1.423
我想合并所有文件中的数据,并以如下列格式创建单个数据帧

  Sample No  Date        Time      Peak at 1219  Peak at 1092  Peak at 1358 
0     1      24/07/2017  13:26:08    1.864        0.412          1.661
1     2      24/07/2017  13:28:15    1.544        0.315          1.564
2     3      24/07/2017  13:31:05    1.954        0.524          1.423
谁能帮我写个密码吗。非常感谢

这里有一个主要功能,可以创建大的df。但是需要对齐数据

然后将df转换为,并将所选的第二级转换为

对于第一列和第二列,请与和一起使用

Last remove second level by with drop=True,对于列名和最后一次重置索引:


谢谢你的回答@jezrael。当我有3个文件时,这很有效,我们可以为3个文件示例定义set_索引。如果我有n个示例文件呢。我将如何为此创建dfs?再次感谢你的帮助。很高兴能帮上忙!如果我的答案有帮助,别忘了——点击复选标记✓ 在答案旁边,将其从灰显切换为填充。谢谢。我当然会@jezrael。只是需要更多关于多个文件的帮助。你能帮忙吗?谢谢你当然,我没看见。如果需要,可以使用dfs=[df1、df2、df3、dfn],然后使用dfs=[x.set_indexx.columns[0]表示dfs中的x]选择“始终第一列”以索引hanks@jezrael。这真的很有帮助。我已经在python脚本中包含了这一部分,我正在读取和合并多个txt文件,并创建一个大数据框架。我面临的唯一问题是,列Sample No的所有行条目都是1。每行显示一个样本编号,但仅打印样本编号1。你能建议如何改正吗?谢谢
dfs = [df1,df2,df3]
#set first column to index
dfs = [x.set_index(x.columns[0]) for x in dfs]

df = pd.concat(dfs, 1, keys = range(1, len(dfs) + 1)).T
print (df)
                       Peak at 1219  Peak at 1092  Peak at 1358
1 24/07/2017 13:26:08         1.864         0.412         1.661
2 24/07/2017 14:28:15         1.544         0.315         1.564
3 24/07/2017 15:31:05         1.954         0.524         1.423

print (df.index.labels[0])
FrozenNDArray([0, 1, 2], dtype='int8')

dates = pd.to_datetime(df.index.get_level_values(1))
df.insert(0, 'Date', dates.date)
df.insert(1, 'Time', dates.time)
df = df.reset_index(level=1, drop=True).rename_axis('Sample No').reset_index()
print (df)
   Sample No        Date      Time  Peak at 1219  Peak at 1092  Peak at 1358
0          1  2017-07-24  13:26:08         1.864         0.412         1.661
1          2  2017-07-24  14:28:15         1.544         0.315         1.564
2          3  2017-07-24  15:31:05         1.954         0.524         1.423