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

时间:2017-04-28 20:37:46

标签: 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 =df1.columns)

这不太理想。什么是pythonic方式?

2 个答案:

答案 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