【问题标题】:Adding 2 rows with 0s at the start and end of pandas dataframe在 pandas 数据帧的开头和结尾添加 2 行 0
【发布时间】:2022-12-07 09:34:25
【问题描述】:

我有一个名为 dataframe 的 pandas Dataframe。 我想在数据框的开头和结尾添加两行 0。

#create DataFrame
df_x = pd.DataFrame({'logvalue': ['20', '20.5', '18.5', '2', '10'],
                     'ID': ['1', '2', '3', '4', '5']})

输出应如下所示。

logvalue ID violatedInstances
0 0 0
20 1 0
20.5 2 1
18.5 3 0
2 4 1
10 5 1
0 0 0

输出也应该重新排列数据帧的索引。 我怎么能在熊猫中做到这一点?

【问题讨论】:

    标签: python pandas indexing row


    【解决方案1】:

    你可以使用concat

    • 首先创建一个包含零行的新数据框 (df_y)
    • 使用concat函数将这个dataframe与原来的join
    • 使用reset_index(drop=True)函数重置索引。

    代码:

    df_x = pd.DataFrame({ 'logvalue': [20.0, 20.5, 18.5, 2.0, 10.0, 0.0],
                        'ID': [1, 2, 3, 4, 5, 0],
                        'violatedInstances': [0, 1, 0, 1, 1, 0]})
    
    df_y = pd.DataFrame({'logvalue': [0],
                        'ID': [0],
                        'violatedInstances': [0]})
    
    output = pd.concat([df_y, df_x, df_y]).reset_index(drop=True)
    
    print(output)
    

    输出:

       logvalue  ID  violatedInstances
    0       0.0   0                  0
    1      20.0   1                  0
    2      20.5   2                  1
    3      18.5   3                  0
    4       2.0   4                  1
    5      10.0   5                  1
    6       0.0   0                  0
    7       0.0   0                  0
    

    【讨论】:

    • 我试过了。但是我的数据框有很多列。所以我不需要使用列名。我试图避免这种情况
    猜你喜欢
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 2021-11-02
    相关资源
    最近更新 更多