【问题标题】:add list of lists to pandas dataframe, where each item of the list is a new column将列表列表添加到熊猫数据框,其中列表的每个项目都是一个新列
【发布时间】:2021-03-26 13:38:39
【问题描述】:

我有 10 个列表(可变长度)看起来像这样,但每个内部列表的长度相同。

[[0.2908717393875122, 0.012684155255556107, -0.0040715765208005905], [0.02942436747252941, 0.011299843899905682, 0.009102505631744862], [0.0382646806538105, 0.004623611457645893, 0.004776048939675093]]

我还有一个包含 10 个数据框的列表,其中每个 df 看起来像这样:

Second | Number |
2      |   B    |
3      |   B    |
4      |   B    |

我想做的是将此列表列表添加到每个数据帧中,结果如下所示:

 Second    | Number | V1                | V2                  |V3
    2      |   B    |0.2908717393875122 |0.012684155255556107 | -0.0040715765208005905
    3      |   B    |0.02942436747252941| 0.011299843899905682| 0.009102505631744862
    4      |   B    |0.0382646806538105 | 0.004623611457645893| 0.004776048939675093

我知道如何将单个列表附加到现有数据帧(并且它有效),但我想一次性完成所有这些。

df['V1'] = list

【问题讨论】:

    标签: python python-3.x pandas list dataframe


    【解决方案1】:
    lst=[[0.2908717393875122, 0.012684155255556107, -0.0040715765208005905], [0.02942436747252941, 0.011299843899905682, 0.009102505631744862], [0.0382646806538105, 0.004623611457645893, 0.004776048939675093]]
    

    只需简单地使用:-

    df[['V1','V2','V3']]=lst
    

    现在,如果您打印 df,您将获得所需的输出:-

     Second Number  V1              V2          V3
    0   2      B    0.290872    0.012684    -0.004072
    1   3      B    0.029424    0.011300    0.009103
    2   4      B    0.038265    0.004624    0.004776
    

    @msa 编辑

    first: new_cols = ['V1', 'V2', 'V3'] 
    df = df.reindex(df.columns.union(new_cols), axis=1) 
    

    【讨论】:

    • 您好,这个只有在我先添加列名时才有效: new_cols = ['V1', 'V2', 'V3'] df = df.reindex(df.columns.union(new_cols ), axis=1) - 也许将其添加到解决方案中?
    • 添加到解决方案中......这样做之后它对你有用......我的意思是你得到你的预期输出
    • 是的,我正在等待为您验证滴答声!
    【解决方案2】:

    试试:

    for i in range(10):
        d = pd.DataFrame(list_of_list[i], 
                         columns=['V1','V2','V3'],
                         index=list_df[i].index)
        list_df[i] = list_df[i].join(d)
    

    【讨论】:

    • 您好 - 这对于已经存在的 df 将如何工作?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 2015-06-16
    • 2021-10-31
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多