假设我有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)
这不太理想。什么是pythonic方式?
答案 0 :(得分:3)
这个怎么样:
df2 = df1.copy()
df2[:] = 1 # Or any other value, for the matter
如果您只想保留形状和行/列标题,则甚至不需要最后一行。
答案 1 :(得分:0)
您还可以使用数据框方法“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