【问题标题】:Abstract identical column name from different dataframes to merge a new different dataframe从不同的数据框中提取相同的列名以合并新的不同数据框
【发布时间】:2019-05-25 07:06:36
【问题描述】:
time  A  B  C  ... N           time   A     B    C  ...  N
 1/1  a  c                     1/1    aa    cc
 1/2  b  d                     1/2    bb    dd                   ....
 ...                           ...
        W1                                W2

如上图有几个DataFrames(W1,W2,...),代表A到N的不同属性。如何将这些DataFrames中相同的列名合并起来,使一列的不同属性可以显示在一个DataFrame中?

预期输出:

time  W1  W2 ...                        time   W1   W2   ...
1/1   a   aa                             1/1   c    cc
1/2   b   bb                             1/2   d    dd               ...
...                                      ...
        A                                          B

【问题讨论】:

    标签: python pandas dataframe pandas-groupby


    【解决方案1】:

    试试这个,

    import pandas as pd
    # there are 2 dfs by df1 and df2 and both have column A
    df1A = df.loc[df['A']]
    df2A = df.loc[df['A']]
    final_df = pd.concat([df1A,df2A], sort=True)
    

    【讨论】:

    • concat 不存在关键字参数“排序”。而且我已经尝试过这种方法:抽象两个并合并。但问题是要抽象的数据框太多了,我想要一个更简单的方法。
    • 根据 pandas docs 0.23.4 concat 确实有关键字参数排序。 pandas.pydata.org/pandas-docs/version/0.23.4/generated/…
    • 您是否将所有 df 存储在列表或某种 DS 中。
    【解决方案2】:

    基于此https://pandas.pydata.org/pandas-docs/stable/merging.html

    如果我理解正确,您需要执行:

    import pandas as pd
    new_df = pd.concat([W1, W2, W3])
    

    【讨论】:

    • 不完全是。我想从不同的数据帧中抽象出一个列来合并一个新的数据帧,该数据帧将与前一个数据帧具有相同的行大小。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    相关资源
    最近更新 更多