Python 在pandas中使用列的操作
我有一个df,看起来像这样:Python 在pandas中使用列的操作,python,pandas,Python,Pandas,我有一个df,看起来像这样: I_0 I_1 I_2 10 20 30 SF q 0 2 3 4 5 1 1 0.2 1 5 4 3 4 7 8 0.3 2 4 8 7 9 8 7 0.4 我想对其进行操作,例如: 将第10、20和30列乘以SF 从I_0、I_1和I_2中减去这些新列 例如: I_0 - (column 10 * SF) I_1 - (column 20 * SF) I_2 - (column 30 * S
I_0 I_1 I_2 10 20 30 SF
q
0 2 3 4 5 1 1 0.2
1 5 4 3 4 7 8 0.3
2 4 8 7 9 8 7 0.4
我想对其进行操作,例如:
- 将第10、20和30列乘以SF
- 从I_0、I_1和I_2中减去这些新列
I_0 - (column 10 * SF)
I_1 - (column 20 * SF)
I_2 - (column 30 * SF)
然后将计算列重命名为I_0_sub、I_1_sub和I_2_sub
到目前为止,我已经尝试过:
df = pd.merge(df1, df2, how = "left", left_index = True, right_index = True)
df["SF"] = df["I_q_2"] / df[10]
test = df.subtract(df2*SF, axis=0)
test.drop(labels=["10", "20", "30", "SF"], axis = "columns", inplace = True)
test = test.add_suffix("_sub")
让NaN加入df
如有任何帮助,将不胜感激。用于选择列,以I
开头:
df1 = df.filter(regex='^I')
print (df1)
I_0 I_1 I_2
q
0 2 3 4
1 5 4 3
2 4 8 7
然后按子集选择列,并按以下方式选择多个列:
最后一个减法-但列不同,因此将值转换为numpy数组
:
df = df1.sub(df2.values, 0).add_suffix('_sub')
print (df)
I_0_sub I_1_sub I_2_sub
q
0 1.0 2.8 3.8
1 3.8 1.9 0.6
2 0.4 4.8 4.2
如果两个df
getNaN
s中的列名称不相同,因为数据未对齐:
print (df1.sub(df2, axis=0))
10 20 30 I_0 I_1 I_2
q
0 NaN NaN NaN NaN NaN NaN
0 NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN
用于选择列,以I
开头:
df1 = df.filter(regex='^I')
print (df1)
I_0 I_1 I_2
q
0 2 3 4
1 5 4 3
2 4 8 7
然后按子集选择列,并按以下方式选择多个列:
最后一个减法-但列不同,因此将值转换为numpy数组
:
df = df1.sub(df2.values, 0).add_suffix('_sub')
print (df)
I_0_sub I_1_sub I_2_sub
q
0 1.0 2.8 3.8
1 3.8 1.9 0.6
2 0.4 4.8 4.2
如果两个df
getNaN
s中的列名称不相同,因为数据未对齐:
print (df1.sub(df2, axis=0))
10 20 30 I_0 I_1 I_2
q
0 NaN NaN NaN NaN NaN NaN
0 NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN