簡體   English   中英

遍歷 dataframe 列並在 python pandas 中創建新列

[英]Iterating over dataframe column and creating new column in python pandas

我有一個 dataframe 像這樣DataFrame

在此處輸入圖像描述

我想創建一個新列(seq)並執行以下操作

  • df['seq'] = 每個組的第一項(按 id)為 0
  • df['seq'] = 保持增量,直到您按組(按 id)在日期列中看到日期
  • 如果存在日期,則再次將列 seq 重置為 0 遵循相同的增量過程

這是我預期的 output 的預期答案:

在此處輸入圖像描述

謝謝

對我來說最簡單的解決方案是創建一個數組並在循環遍歷 dataframe 時用counter的值填充它。 您將在之后添加新列。

例如:

seq = np.zeros(len(df))
date = ''
id = 0
counter = 0
for i in range(len(df)):
    test_date = df['Dates'].iloc[i]
    test_id = df['id'].iloc[i]
    if (test_date and test_date != date) or (test_id != id):
        # new date or id detected
        date = test_date
        id = test_id
        counter = 0
    else:
        counter += 1
    seq[i] = counter

df['seq'] = seq

這可能是一種更有效的方法,但根據我的經驗,使用 numpy 數組在 dataframe 中添加數據時性能還可以。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM