我有 2 個具有相同列名但行數不同的資料框
data=ones((100,2))
df1=pd.DataFrame(data=data, columns = ('a','b'))
df2=pd.DataFrame({'a':[5,6,7,8,9],'b':[6,6,6,6,6]})
我想要做的是,將 df2 乘以 df1 但 df2 每 5 行重復一次到 df1
我所做的是
df6=pd.DataFrame(columns=('a','b'))
for x in range(0,90,5):
df6=df6.append(df2*df1.iloc[x:x 5,:])
但它只適用于前 5 行,然后我只得到 NaN
uj5u.com熱心網友回復:
將 .values 添加到您的索引資料框后,您的代碼就可以作業了。
df6=df6.append(df2.multiply(df1.iloc[x:x 5,:].values))
uj5u.com熱心網友回復:
你可以這樣reindex做mul
df1 = df1.mul(df2.reindex(df1.index%5).values)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/414783.html
標籤:
上一篇:將PandasDataFrame乘以系列并保留所有不同的列
下一篇:Python/Pandas-如果A列等于X或Y,則從ColB賦值。如果不是,則賦值ColC。如何用Python撰寫?
