我有一个数据框,例如:
2013-07 114.60 89.62 125.64
2013-08 111.55 88.63 121.57
2013-09 108.31 86.24 117.93
index是YY-MM日期系列,我想复制最后一行并将其添加到具有新的更新索引的原始数据框中。新的数据框应如下所示:
2013-07 114.60 89.62 125.64
2013-08 111.55 88.63 121.57
2013-09 108.31 86.24 117.93
2013-10 108.31 86.24 117.93
我怎样才能做到这一点?
这就是我解析您的数据的方式(简单,但您确实应该有描述问题中数据的代码片段):
In [1]: df = pd.read_csv('in.txt', index_col=0, sep=' ', header=None, parse_dates=[0])
In [2]: df
Out[2]:
1 2 3
0
2013-07-01 114.60 89.62 125.64
2013-08-01 111.55 88.63 121.57
2013-09-01 108.31 86.24 117.93
Run Code Online (Sandbox Code Playgroud)
现在,使用concat/append和slicing,您可以在新日期下重新添加最后一行:
In [3]: new_date = pd.datetools.to_datetime('2013-10')
In [3]: new_data = pd.DataFrame(df[-1:].values, index=[new_date], columns=df.columns)
In [4]: df = df.append(new_data)
In [5]: df
Out[5]:
1 2 3
2013-07-01 114.60 89.62 125.64
2013-08-01 111.55 88.63 121.57
2013-09-01 108.31 86.24 117.93
2013-10-01 108.31 86.24 117.93
Run Code Online (Sandbox Code Playgroud)
但是请注意,逐行添加数据不是推荐的方式 - 最好在较低级别的结构上进行追加,例如列表和字典(在单独追加时速度更快),并将数据转换为 DataFrame当您实际需要对其进行分析时批量处理。
我所做的是:
new_index = REEFDKM.index[-1] + 1
REEFDKM = REEFDKM.append(pd.DataFrame(index=[new_index], data=REEFDKM.tail(1).values, columns=REEFDKM.columns))
Run Code Online (Sandbox Code Playgroud)
所以最后一行总是自动更新......
| 归档时间: |
|
| 查看次数: |
4269 次 |
| 最近记录: |