【发布时间】:2021-07-11 10:22:50
【问题描述】:
我有几个按特定顺序列出的数据文件,每个文件包含三列(时间、信号 1 和信号 2)。我想从 for 循环中的文件夹中读取所有文件并创建一个 pandas 数据框。 我的问题如下:根据上一次的最后一个元素读取第一个文件后,应该重新计算时间。见下例:
文件 1:
| Time | Signal1 | Signal2 |
|---|---|---|
| 0.8 | 111 | 222 |
| 1.3 | 111 | 222 |
| 1.7 | 111 | 222 |
文件 2:
| Time | Signal1 | Signal2 |
|---|---|---|
| 0.2 | 111 | 222 |
| 1.5 | 111 | 222 |
| 2.4 | 111 | 222 |
文件 3:
| Time | Signal1 | Signal2 |
|---|---|---|
| 0.8 | 111 | 222 |
| 1.4 | 111 | 222 |
| 2.8 | 111 | 222 |
我想要达到的目标
| Time | Signal1 | Signal2 |
|---|---|---|
| 0.8 | 111 | 222 |
| 1.3 | 111 | 222 |
| 1.7 | 111 | 222 |
| 1.9 | 111 | 222 |
| 3.3 | 111 | 222 |
| 5.7 | 111 | 222 |
| 6.5 | 111 | 222 |
| 7.9 | 111 | 222 |
| 10.7 | 111 | 222 |
我尝试了什么: 我尝试了 pd.append,但使用此选项不会重新计算我的时间。我也尝试单独计算时间列,然后将其插入回数据框中,但没有成功。
for i in range(len(filenames)):
files = pd.read_csv(filenames[i], skiprows=(14), sep='\t', names=('Time', 'Signal1', 'Signal2'))
if i > 0:
for j in range(len(files.Time)):
data.Time.append([data.Time.iloc[-1] + files.Time.iloc[j]])
data = files
我的文件长度不同,时间差也不是恒定的。
谁能推荐我如何使用重新计算的时间读取和附加我的文件?
谢谢。
【问题讨论】:
-
欢迎来到 Stackoverflow !!请以适当的方式重新格式化您提到的数据框,以便更容易理解。还贴出您尝试过的代码 sn-p 以及您遇到的问题。
-
连接数据框后需要设置
df.index = np.arange(len(df))+1。
标签: python pandas dataframe append