Python 熊猫:复制df并填充新值的最佳方式
假设我有df1: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
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