簡體   English   中英

創建一個新列作為 Pandas DataFrame 的計數

[英]Create a new column as a count of the Pandas DataFrame

我有一個 Pandas DataFrame。 如何創建一個類似於 Pandas DataFrame 計數的新列,因為我已經將索引設為 Datatime。

例如,以下代碼可在您的本地 PC 上重現:

import datetime
import numpy

dates = [
    datetime.date(2019, 1, 13),
    datetime.date(2020, 5, 11),
    datetime.date(2018, 7, 24),
    datetime.date(2019, 3, 23),
    datetime.date(2020, 2, 16)
]

data = {
    "a": [13.3,12.3,np.nan,10.3,np.nan],
    "b": [1,0,0,1,1],
    "c": ["no","yes","no","","yes"]
}

pd.DataFrame(index=dates,data=data)

現在,我想添加一個新列作為計數。 類似於 1,2,3,4,5 直到數據結束

df['count'] = range(1, len(df) + 1)

len(df)返回DataFrame 中的行數,因此您可以調用內置的range函數創建一個從1到DataFrame 中的行數的范圍,然后將其分配給新列。 為列分配范圍時,它會自動轉換為 Pandas 系列。

您可以使用df.index構建一個系列,並在將其分配給數據幀的列之前對其進行一些處理。

在這里,我們可以使用:

df['count'] = pd.Series(1, index=df.index()).cumsum()

在這里,它的效率(超過 1 個數量級)比df['count'] = np.arange(1, 1 + len(df))后者直接構建一個具有預期值的 numpy 數組,但它可以是在更復雜的用例中很有用。

暫無
暫無

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

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