Pandas 组合csv文件,按时间对其排序,并平均列数
我有许多csv文件中的数据集,它们看起来像我所附的图片 第一列中的时间始终以分钟为单位,但原始数据文件之间的时间步长和总行数不同。我希望有一个输出文件(csv文件),其中所有原始文件按时间进行组合和排序。因此,时间从柱的顶部增加到底部 当存在多个数值时,应平均浓度列 我试着这样做:Pandas 组合csv文件,按时间对其排序,并平均列数,pandas,merge,average,Pandas,Merge,Average,我有许多csv文件中的数据集,它们看起来像我所附的图片 第一列中的时间始终以分钟为单位,但原始数据文件之间的时间步长和总行数不同。我希望有一个输出文件(csv文件),其中所有原始文件按时间进行组合和排序。因此,时间从柱的顶部增加到底部 当存在多个数值时,应平均浓度列 我试着这样做: import numpy as np import pandas as pd import matplotlib.pyplot as plt d1 = pd.read_csv('dat1.txt', sep="\
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
d1 = pd.read_csv('dat1.txt', sep="\t")
d2 = pd.read_csv('dat2.txt', sep="\t")
d1.columns
d2.columns
merged_outer = pd.merge(d1,d2, on='time', how='outer')
print merged_outer
但这并不能产生正确的输出。我是熊猫的初学者,但我希望我能很好地解释这个问题。谢谢你的任何想法或建议
谢谢你的想法。不幸的是,当我运行它时,我收到一条错误消息说dat1.txt不存在。当我最初通过以下方式读取原始文件时,我觉得这很奇怪:
d1 = pd.read_csv('dat1.txt', sep="\t")
d2 = pd.read_csv('dat2.txt', sep="\t")
对不起,这里的数据为原始文本:
raw data 1
time column2 column3 concentration
1 2 4 3
2 2 4 6
4 2 4 2
7 2 4 5
raw data 2
time column2 column3 concentration
1 2 4 6
2 2 4 2
8 2 4 9
10 2 4 5
12 2 4 7
像这样的东西可能有用
filenames = ['dat1.txt', 'dat2.txt',...]
dataframes = {filename: pd.read_csv(filename, sep="\t") for filename in filenames}
merged_outer = pd.concat(dataframes).groupby('time').mean()
当您将dict传递给
pd.concat
时,它会创建一个多索引数据框,dict键为level0,下次您提问时,粘贴csv
文件原始文本的例外部分,而不是屏幕截图,这样其他人就可以更轻松地测试他们的代码