我有两个DataFrames
,如下所示:
df1 =
name1 name2 name3 .... nameXXX
5.1 1.2 1.1 ... 223.2
3.22 1.34 1.5 ... 213.2
4.3 1.32 1.23 ... 523.2
5.2 1.1 1.543 ... 223.2
df2=
name1 0.2
name2 0.1
name3 0.43
... ...
nameXXX 0.21
我需要什么:
df3 =
name1 name2 name3 ... nameXXX
5.1 * 0.2 1.2 * 0.1 1.1 * 0.43 ... 223.2 * 0.21
3.22* 0.2 1.34* 0.1 1.5 * 0.43 ... 213.2 * 0.21
4.3 * 0.2 1.32* 0.1 1.2 * 0.43 ... 523.2 * 0.21
5.2 * 0.2 1.1 * 0.1 1.54* 0.43 ... 223.2 * 0.21
name
是列标题
基本上,我想将df1
的每一列乘以df2
中存在的数字,该数字位于df1
列标题的同一行中
我看到了以下问题,但找不到解决问题的方法:
1)How to select rows from a DataFrame based on column values?
2)Pandas: pairwise multiplication of columns based on column name
3)Multiply columns of a dataframe by getting the column names from a list
4)pandas: Select dataframe columns based on another dataframe's columns
答案 0 :(得分:2)
如果 func didBegin(_ contact: SKPhysicsContact) {
case PhysicsCategory.coin.rawValue:
print("collect a coin")
if let coin = otherBody.node as? Coin {
coin.collect()
// Add the value of the coin to our encounter:
self.coinsCollected += coin.value
hud.setCoinCountDisplay(newCoinCount: self.coinsCollected)
print("self.coinscollected")
}
列是您的索引,则只需
name
如果它是普通列,则可以将其设置为索引:
df1.mul(df2.iloc[:,0], axis='columns')
输出:
df1.mul(df2.set_index(0).iloc[:,0], axis='columns')
答案 1 :(得分:1)
让我们这样做
df1=df1.mul(df2,axis=1)
答案 2 :(得分:0)
我认为您需要更新列,实质上,如果与其他df中的行具有相同数量的列,则可以尝试:
cols = df1.columns 对于我在山口: df1 [i] = df1 [i] * df2.loc [i] .values
在手机上打字很抱歉,格式化