Python 熊猫:如何将一行附加到按日期索引的现有数据帧?
在pandas中,我想使用(我的选择)下面的方法将一个新行附加到现有的数据帧中 在现有数据帧上运行Python 熊猫:如何将一行附加到按日期索引的现有数据帧?,python,pandas,Python,Pandas,在pandas中,我想使用(我的选择)下面的方法将一个新行附加到现有的数据帧中 在现有数据帧上运行df.info() <class 'pandas.core.frame.DataFrame'> Index: 18 entries, 2011-10-03 00:00:00 to 2011-10-28 00:00:00 Data columns (total 1 column): entry 18 non-null int64 dtypes: int6
df.info()
<class 'pandas.core.frame.DataFrame'>
Index: 18 entries, 2011-10-03 00:00:00 to 2011-10-28 00:00:00
Data columns (total 1 column):
entry 18 non-null int64
dtypes: int64(1)
?您可以更改系列的名称:
s.name = 10
致:
第二天添加一个或多个动态:
s.name = df.index.max() + pd.Timedelta(1, unit='d')
也可用于:
样本:
np.random.seed(145)
dates = pd.date_range('2015-01-01', periods=8)
df = pd.DataFrame(np.random.randn(8, 1), columns=['A'], index=dates)
print (df)
A
2015-01-01 -0.828623
2015-01-02 0.060381
2015-01-03 1.202777
2015-01-04 0.676415
2015-01-05 -1.669687
2015-01-06 0.945452
2015-01-07 -0.045390
2015-01-08 1.926335
s = pd.Series([10], index=['A'])
s.name = df.index.max() + pd.Timedelta(1, unit='d')
print (s)
A 10
Name: 2015-01-09 00:00:00, dtype: int64
df.loc[df.index.max() + pd.Timedelta(1, unit='d')] = s
print (df)
A
2015-01-01 -0.828623
2015-01-02 0.060381
2015-01-03 1.202777
2015-01-04 0.676415
2015-01-05 -1.669687
2015-01-06 0.945452
2015-01-07 -0.045390
2015-01-08 1.926335
2015-01-09 10.000000
来自Jez的数据,您提到了append
我们可以使用append
df1=pd.DataFrame({'A':[0]},index=[pd.to_datetime('2018-05-16')])
df.append(df1)
Out[584]:
A
2015-01-01 -0.828623
2015-01-02 0.060381
2015-01-03 1.202777
2015-01-04 0.676415
2015-01-05 -1.669687
2015-01-06 0.945452
2015-01-07 -0.045390
2015-01-08 1.926335
2015-01-09 10.000000
2018-05-16 0.000000
这正是我想要的-谢谢!但是,在你的答案和@耶斯雷尔的答案之间做出选择,我感到很难过——我该怎么办呢-S@jtlz2我同意,你可以接受杰兹的回答,也许你可以投我的一票?:-)嗯,其实我用的是你的:\n也许它们可以结合起来?不管怎样,我现在要把这两张票都投上去。非常感谢!
df.loc[df.index.max() + pd.Timedelta(1, unit='d')] = s
np.random.seed(145)
dates = pd.date_range('2015-01-01', periods=8)
df = pd.DataFrame(np.random.randn(8, 1), columns=['A'], index=dates)
print (df)
A
2015-01-01 -0.828623
2015-01-02 0.060381
2015-01-03 1.202777
2015-01-04 0.676415
2015-01-05 -1.669687
2015-01-06 0.945452
2015-01-07 -0.045390
2015-01-08 1.926335
s = pd.Series([10], index=['A'])
s.name = df.index.max() + pd.Timedelta(1, unit='d')
print (s)
A 10
Name: 2015-01-09 00:00:00, dtype: int64
df.loc[df.index.max() + pd.Timedelta(1, unit='d')] = s
print (df)
A
2015-01-01 -0.828623
2015-01-02 0.060381
2015-01-03 1.202777
2015-01-04 0.676415
2015-01-05 -1.669687
2015-01-06 0.945452
2015-01-07 -0.045390
2015-01-08 1.926335
2015-01-09 10.000000
df1=pd.DataFrame({'A':[0]},index=[pd.to_datetime('2018-05-16')])
df.append(df1)
Out[584]:
A
2015-01-01 -0.828623
2015-01-02 0.060381
2015-01-03 1.202777
2015-01-04 0.676415
2015-01-05 -1.669687
2015-01-06 0.945452
2015-01-07 -0.045390
2015-01-08 1.926335
2015-01-09 10.000000
2018-05-16 0.000000