如何通过每隔一列减去第一列来创建一个新的数据框?

时间:2020-05-23 08:49:40

标签: python pandas dataframe calculated-columns difference

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是结果。

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

        HttpContext.Response.Cookies.Append("Cookie1", "", new CookieOptions()
        {
            Domain= ".example.com",
            Expires = DateTime.Now.AddDays(-1)
        });

答案 2 :(得分:0)

一种解决方法是

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]]