当前位置: 首页 > 知识库问答 >
问题:

熊猫:使用基于值 [重复] 的列名创建新列

阎淮晨
2023-03-14

我有这个原始数据帧:

                     column  data
datetime                         
2021-01-23 00:01:00       1    10
2021-01-23 00:01:00       2    15
2021-01-23 00:02:00       1    11
2021-01-23 00:03:00       1    12
2021-01-23 00:03:00       2    14

>

  • 可能有多行具有相同的日期时间,如示例所示。

    列< code>column中可能不止有两个不同的值,这是一个简化的示例。

    所有值都是整数。

    我想创建这个新的数据框:

                          1    2
    datetime                         
    2021-01-23 00:01:00  10   15
    2021-01-23 00:02:00  11  NaN
    2021-01-23 00:03:00  12   14
    

    需要采取的行动:

    >

  • 对于列<code>列<code>中的每个唯一值,创建一个新列,该值作为列的名称。

    对于每个唯一的日期时间,创建一个新行。

    根据原始数据帧中的数据列填充值,如果没有值,则使用 NaN。

    创建原始数据帧的代码:

    import io, pandas as pd
    
    t = io.StringIO("""
    datetime|column|data
    2021-01-23 00:01:00|1|10
    2021-01-23 00:01:00|2|15
    2021-01-23 00:02:00|1|11
    2021-01-23 00:03:00|1|12
    2021-01-23 00:03:00|2|14""")
    df = pd.read_csv(t, sep='|', parse_dates=['datetime']).set_index('datetime').astype(int)
    

    任何帮助都将不胜感激。提前万分感谢!

  • 共有1个答案

    盛超
    2023-03-14

    熊猫数据透视表将帮助你

    pd.pivot_table(df, values ='data', index =['datetime'],columns =['column']).reset_index()
    

    输出:

            datetime         1       2
    0   2021-01-23 00:01:00 10.0    15.0
    1   2021-01-23 00:02:00 11.0    NaN
    2   2021-01-23 00:03:00 12.0    14.0
    
     类似资料:
    • 基于dataframe列val_1值,查看其他列col_0-10标签前缀,然后创建另一列Mycl。 数据帧看起来像: 应用逻辑后所需的数据帧: 我是trid,但这不起作用:df['mycol']=df['col'df['val_1']。aType(str)] DDL生成DataFrame: 谢谢!

    • 我有一个df,看起来像: 作为pd进口熊猫 df df

    • 问题内容: 所以,这是我的数据框 我还有另一个清单: 如果x.Country位于欧洲,我想创建一个新列“ Continent” 问题答案: 或者您可以直接 使用

    • 我已经看到了将一个列/系列分解成熊猫数据框架的多个列这一主题的一些变体,但是我一直在尝试做一些事情,但是现有的方法并没有真正成功。 给定如下数据帧: 我想将系列中的项目转换为列,以 值作为值,如下所示: 我觉得这应该是一个相对简单的问题,但我已经为此努力了几个小时,不断增加的复杂程度,但没有成功。

    • 问题内容: 我有一个数据帧,其中有几行几乎是彼此重复的,除了一个值。我的目标是将这些行合并或“合并”为单行,而无需对数值进行求和。 这是我正在使用的示例: 这就是我想要的: 我不想汇总“收入”列的原因是因为我的表是在多个时间段内进行数据透视的结果,其中“收入”只是最终多次列出,而不是每个“ Use_Case”都有不同的值。 解决这个问题的最佳方法是什么?我已经研究过该功能,但是我仍然不太了解它。

    • 我有一个pandas dataframe,需要根据dataframe中其他列的值创建新列。这是数据帧 人城市国家国家 美国伊利诺伊州芝加哥 美国亚利桑那州凤凰城B酒店 C美国加利福尼亚州圣地亚哥 我想根据state中的值创建两个新列 创建新列df[“城北”]=df[“城市”]其中state=“伊利诺伊” 创建新列df[“城市南部”]=df[“城市”],其中州不等于“伊利诺伊州” 我试过了 但是不等