如何通过从其他每一列中减去第一列来创建新的数据框?
How can I create a new dataframe by subtracting the first column from every other column?
import pandas as pd
df = {'a': [1,1,1], 'b': [3,3,3,], 'c': [5,5,5,], 'd': [7,7,7], 'e': [9,9,9]}
df1 = pd.DataFrame(df, columns = ['a', 'b', 'c', 'd', 'e'])
dg = {'b': [2,2,2], 'c': [4,4,4], 'd': [6,6,6], 'e': [8,8,8]}
df2 = pd.DataFrame(dg, columns = ['b', 'c', 'd', 'e'])
df1
a b c d e
0 1 3 5 7 9
1 1 3 5 7 9
2 1 3 5 7 9
df1 是我的原始数据框。我想通过从其他列中减去列 a 来创建另一个数据框(取列 a 和所有其他列之间的差异)。
df2
b c d e
0 2 4 6 8
1 2 4 6 8
2 2 4 6 8
df2 是结果。
非常感谢你的帮助。
一种方法是
import pandas as pd
df = {'a': [1,1,1], 'b': [3,3,3,], 'c': [5,5,5,], 'd': [7,7,7], 'e': [9,9,9]}
df1 = pd.DataFrame(df, columns = ['a', 'b', 'c', 'd', 'e'])
df2 = pd.DataFrame()
for col in df1.columns[1:]:
df2[col] = df1[col] - df1[df1.columns[0]]
df = df1.loc[:,'b':].apply(lambda x: x-df1['a'])
print(df)
打印:
b c d e
0 2 4 6 8
1 2 4 6 8
2 2 4 6 8
df1.iloc[:,1:].sub(df1.a,axis=0)
b c d e
0 2 4 6 8
1 2 4 6 8
2 2 4 6 8
import pandas as pd
df = {'a': [1,1,1], 'b': [3,3,3,], 'c': [5,5,5,], 'd': [7,7,7], 'e': [9,9,9]}
df1 = pd.DataFrame(df, columns = ['a', 'b', 'c', 'd', 'e'])
dg = {'b': [2,2,2], 'c': [4,4,4], 'd': [6,6,6], 'e': [8,8,8]}
df2 = pd.DataFrame(dg, columns = ['b', 'c', 'd', 'e'])
df1
a b c d e
0 1 3 5 7 9
1 1 3 5 7 9
2 1 3 5 7 9
df1 是我的原始数据框。我想通过从其他列中减去列 a 来创建另一个数据框(取列 a 和所有其他列之间的差异)。
df2
b c d e
0 2 4 6 8
1 2 4 6 8
2 2 4 6 8
df2 是结果。
非常感谢你的帮助。
一种方法是
import pandas as pd
df = {'a': [1,1,1], 'b': [3,3,3,], 'c': [5,5,5,], 'd': [7,7,7], 'e': [9,9,9]}
df1 = pd.DataFrame(df, columns = ['a', 'b', 'c', 'd', 'e'])
df2 = pd.DataFrame()
for col in df1.columns[1:]:
df2[col] = df1[col] - df1[df1.columns[0]]
df = df1.loc[:,'b':].apply(lambda x: x-df1['a'])
print(df)
打印:
b c d e
0 2 4 6 8
1 2 4 6 8
2 2 4 6 8
df1.iloc[:,1:].sub(df1.a,axis=0)
b c d e
0 2 4 6 8
1 2 4 6 8
2 2 4 6 8