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

如何提取多个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 vscode的问题提问
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM