nyft01 2021-08-08 14:54 采纳率: 100%
浏览 266
已结题

如何提取多个dataframe的列,按某一列组成新的dataframe

本人学习python完全是为了解决数据分析的问题。现在遇到一个问题,有偿请求各位帮助:
1.假设存在W1,W2,W3,Wn的数据集DataFram;
2.所有数据集W1,W2,Wn的数据结构是一样的,就是每一列都是A,B,C,D等
3.里面有一列A的数据是基本一样,不是完全一样,比如ID,是每月动态增加和减少的;
4.因为数据每个月动态更新,除了A大致一样以外,其他数据都会变。现在需要把W1,W2,Wn的数据集里面的B1,B2,B3,Wn提取出来,按照A列合成。

请问这个程序怎么写?回答出来运行无误,有偿奖励200哈,请不要嫌弃少。
PS:如果是两个,我手动用merge就可以了,但是以后每个月就会多一个DataFrame,手动的工作量会非常大,而且不智能

  • 写回答

5条回答 默认 最新

  • 咕泡-三木 2021-08-08 15:09
    关注

    就是以W1的A列为主键,链接多个表嘛,用sql很方便,python的话我得调试一下

    如此看来,搞数据分析sql还是需要掌握一下的。。。

    更新:

    向pandas道歉,如果熟悉pandas的话,用起来更方便

    代码

    df_list =[W1, W2, W3]
    first_df = df_list[0]
    print(first_df)
    for df in df_list[1:]:
        print(df)
        first_df = pd.concat(
            [first_df, df],
            axis=1,
        )
        # print(df)
    print(first_df)
    

    三个DF

        业绩A  业绩B  业绩C
    ID                  
    1      1     1     1
    2      1     1     1
    3      1     1     1
    4      1     1     1
    5      1     1     1
        业绩A  业绩B  业绩C
    ID                  
    7      2     2     2
    8      2     2     2
    9      2     2     2
    10     2     2     2
        业绩A  业绩B  业绩C
    ID                  
    5      3     3     3
    6      3     3     3
    7      3     3     3
    8      3     3     3
    9      3     3     3
    10     3     3     3
    11     3     3     3
    12     3     3     3
    13     3     3     3
    

    合并后

        业绩A1  业绩B1  业绩C1  业绩A2  业绩B2  业绩C2  业绩A3  业绩B3  业绩C3
    ID                                                      
    1    1.0   1.0   1.0   NaN   NaN   NaN   NaN   NaN   NaN
    2    1.0   1.0   1.0   NaN   NaN   NaN   NaN   NaN   NaN
    3    1.0   1.0   1.0   NaN   NaN   NaN   NaN   NaN   NaN
    4    1.0   1.0   1.0   NaN   NaN   NaN   NaN   NaN   NaN
    5    1.0   1.0   1.0   NaN   NaN   NaN   3.0   3.0   3.0
    6    NaN   NaN   NaN   NaN   NaN   NaN   3.0   3.0   3.0
    7    NaN   NaN   NaN   2.0   2.0   2.0   3.0   3.0   3.0
    8    NaN   NaN   NaN   2.0   2.0   2.0   3.0   3.0   3.0
    9    NaN   NaN   NaN   2.0   2.0   2.0   3.0   3.0   3.0
    10   NaN   NaN   NaN   2.0   2.0   2.0   3.0   3.0   3.0
    11   NaN   NaN   NaN   NaN   NaN   NaN   3.0   3.0   3.0
    12   NaN   NaN   NaN   NaN   NaN   NaN   3.0   3.0   3.0
    13   NaN   NaN   NaN   NaN   NaN   NaN   3.0   3.0   3.0
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 8月16日
  • 已采纳回答 8月8日
  • 创建了问题 8月8日

悬赏问题

  • ¥15 安装opengauss数据库报错
  • ¥15 【急】在线问答CNC雕刻机的电子电路与编程
  • ¥60 在mc68335芯片上移植ucos ii 的成功工程文件
  • ¥15 笔记本外接显示器正常,但是笔记本屏幕黑屏
  • ¥15 Python pandas
  • ¥15 蓝牙硬件,可以用哪几种方法控制手机点击和滑动
  • ¥15 生物医学数据分析。基础课程就v经常唱课程舅成牛逼
  • ¥15 云环境云开发云函数对接微信商户中的分账功能
  • ¥15 空间转录组CRAD遇到问题
  • ¥20 materialstudio计算氢键脚本问题