Python 熊猫:复制df并填充新值的最佳方式

Python 熊猫:复制df并填充新值的最佳方式,python,pandas,Python,Pandas,假设我有df1: dates = pd.date_range('20170101',periods=20) df1 = pd.DataFrame(np.random.randint(10,size=(20,3)),index=dates,columns=['foo','bar','see']) 我想创建具有相同形状、索引和列的df2。我经常发现自己在做这样的事情: df2= pd.DataFrame(np.ones(shape(df1),index = df1.index,columns =d

假设我有df1:

dates = pd.date_range('20170101',periods=20)
df1 = pd.DataFrame(np.random.randint(10,size=(20,3)),index=dates,columns=['foo','bar','see'])
我想创建具有相同形状、索引和列的df2。我经常发现自己在做这样的事情:

df2= pd.DataFrame(np.ones(shape(df1),index = df1.index,columns =df1.columns)
这不太理想。什么是蟒蛇式的方式?

这个怎么样:

df2 = df1.copy()
df2[:] = 1 # Or any other value, for the matter

如果您只想保留形状和行/列标题,那么最后一行甚至不是必需的。

您还可以使用数据框方法“where”,它允许您根据条件保留数据并保留原始df的形状/索引

dates = pd.date_range('20170101',periods=20)
df1 = pd.DataFrame(np.random.randint(10,size=(20,3)),index=dates,columns=['foo','bar','see'])

df2= df1.where(df1['foo'] % 2 == 0, 9999)

df2