【问题标题】:Counting every two rows with the same number in Python在Python中用相同的数字计算每两行
【发布时间】:2021-05-23 16:31:58
【问题描述】:

我有一个数据框,其中每两行都相关。我试图给每两行一个唯一的 ID。我认为这会容易得多,但我无法弄清楚。假设我有这个数据框:

df = pd.DataFrame({'Var1': ['A', 2, 'C', 7], 'Var2': ['B', 5, 'D', 9]})
print(df)

Var1 Var2
   A    B
   2    5
   C    D
   7    9

我想添加一个 ID 以生成如下所示的数据框:

df = pd.DataFrame({'ID' : [1,1,2,2],'Var1': ['A', 2, 'C', 7], 'Var2': ['B', 5, 'D', 9]})
print(df)

ID Var1 Var2
1    A    B
1    2    5
2    C    D
2    7    9

这只是一个示例,但每两行都是相关的,因此只需尝试在 ID 列中按 1、1、2、2、3、3 等计数。

感谢您的帮助!

【问题讨论】:

    标签: python pandas dataframe counting


    【解决方案1】:

    您可以先创建一个序列,然后将其除以 2(整数除法):

    import numpy as np
    df['ID'] = np.arange(len(df)) // 2 + 1
    df
    
    #  Var1 Var2  ID
    #0    A    B   1
    #1    2    5   1
    #2    C    D   2
    #3    7    9   2
    

    【讨论】:

      【解决方案2】:

      我认为这不是 Pandas 的原生方式,但这很有效......

      import pandas as pd
      
      df = pd.DataFrame({'Var1': ['A', 2, 'C', 7], 'Var2': ['B', 5, 'D', 9]})
      df['ID'] = 1 + df.index // 2
      df[['ID', 'Var1', 'Var2']]
      

      输出:

         ID Var1 Var2
      0   1    A    B
      1   1    2    5
      2   2    C    D
      3   2    7    9
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-25
        • 1970-01-01
        • 2016-10-05
        • 1970-01-01
        • 1970-01-01
        • 2018-10-03
        相关资源
        最近更新 更多