6

我有一个数据框,例如:


2013-07 114.60 89.62 125.64

2013-08 111.55 88.63 121.57

2013-09 108.31 86.24 117.93


索引是 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


我怎样才能做到这一点?

4

2 回答 2

6

这就是我解析您的数据的方式(很简单,但您确实应该有代码片段来描述您的问题中的数据):

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

现在,使用concat/appendslicing,您可以在新日期下重新添加最后一行:

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  

但是请注意,不推荐逐行添加数据 - 最好在较低级别的结构上进行追加,例如列表和字典(在单独追加时更快),并将数据转换为 DataFrame当你真正需要分析它时。

于 2013-10-06T09:23:53.940 回答
0

我所做的是:

new_index = REEFDKM.index[-1] + 1
REEFDKM = REEFDKM.append(pd.DataFrame(index=[new_index], data=REEFDKM.tail(1).values, columns=REEFDKM.columns))

所以最后一行总是自动更新......

于 2013-10-06T07:31:30.323 回答