Python-计数和差异数据帧

发布于 2025-02-11 10:08:16 字数 713 浏览 1 评论 0原文

我有两个关于2005年和2006年行业职业的数据框架。如果该列的增长或减少,我想使用列创建DF。这是一个示例:

    import pandas as pd
    
    d = {'OCC2005': [1234, 1234, 1234 ,1234, 2357,2357,2357,2357, 4321,4321,4321,4321, 3333], 'IND2005': [4, 5, 6, 7, 5,6,7,4, 6,7,5,4,5], 'Result': [7, 8, 12, 1, 11,15,20,1,5,12,8,4,3]}
    
    df = pd.DataFrame(data=d)
    
    print(df)
    d2 = {'OCC2006': [1234, 1234, 1234 ,1234, 2357,2357,2357,2357, 4321,4321,4361,4321, 3333,4444], 'IND2006': [4, 5, 6, 7, 5,6,7,4, 6,7,5,4,5,8], 'Result': [17, 18, 12, 1, 1,5,20,1,5,2,18,4,0,15]}
    
    df2 = pd.DataFrame(data=d2)
    print(df2)

Final_Result = df2['Result'] - df['Result']
print(Final_Result)

我想创建一个带有exc- ind- final_result的DF

I have two data frames about occupation in industry in 2005 and 2006. I would like to create a df using the column with the result of the changed of these years, if it growth or decreased. Here is a sample:

    import pandas as pd
    
    d = {'OCC2005': [1234, 1234, 1234 ,1234, 2357,2357,2357,2357, 4321,4321,4321,4321, 3333], 'IND2005': [4, 5, 6, 7, 5,6,7,4, 6,7,5,4,5], 'Result': [7, 8, 12, 1, 11,15,20,1,5,12,8,4,3]}
    
    df = pd.DataFrame(data=d)
    
    print(df)
    d2 = {'OCC2006': [1234, 1234, 1234 ,1234, 2357,2357,2357,2357, 4321,4321,4361,4321, 3333,4444], 'IND2006': [4, 5, 6, 7, 5,6,7,4, 6,7,5,4,5,8], 'Result': [17, 18, 12, 1, 1,5,20,1,5,2,18,4,0,15]}
    
    df2 = pd.DataFrame(data=d2)
    print(df2)

Final_Result = df2['Result'] - df['Result']
print(Final_Result)

I would like to create a df with occ- ind- final_result

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清旖 2025-02-18 10:08:17

重命名df的列匹配df2的列名:

MAP = dict(zip(df.columns, df2.columns))
out = (df2.set_index(['OCC2006', 'IND2006'])
          .sub(df.rename(columns=MAP).set_index(['OCC2006', 'IND2006']))
          .reset_index())
print(out)

# Output
    OCC2006  IND2006  Result
0      1234        4    10.0
1      1234        5    10.0
2      1234        6     0.0
3      1234        7     0.0
4      2357        4     0.0
5      2357        5   -10.0
6      2357        6   -10.0
7      2357        7     0.0
8      3333        5    -3.0
9      4321        4     0.0
10     4321        5     NaN
11     4321        6     0.0
12     4321        7   -10.0
13     4361        5     NaN
14     4444        8     NaN

Rename columns of df to match column names of df2:

MAP = dict(zip(df.columns, df2.columns))
out = (df2.set_index(['OCC2006', 'IND2006'])
          .sub(df.rename(columns=MAP).set_index(['OCC2006', 'IND2006']))
          .reset_index())
print(out)

# Output
    OCC2006  IND2006  Result
0      1234        4    10.0
1      1234        5    10.0
2      1234        6     0.0
3      1234        7     0.0
4      2357        4     0.0
5      2357        5   -10.0
6      2357        6   -10.0
7      2357        7     0.0
8      3333        5    -3.0
9      4321        4     0.0
10     4321        5     NaN
11     4321        6     0.0
12     4321        7   -10.0
13     4361        5     NaN
14     4444        8     NaN
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文