簡體   English   中英

對 Pandas dataframe 中的列的每條記錄應用相同的 function

[英]Apply the same function on each record of a column in Pandas dataframe

我有一個具有特定格式的日期時間列的數據集。 我需要在此列中創建新功能,這意味着我需要通過從上述日期時間列中提取信息來將新列添加到 dataframe。 我的示例輸入 dataframe 列如下所示。

id    datetime         feature2
1    12/3/2020 0:56       1
2    11/25/2020 13:26     0

預期的 output 為:

id    date      hour    mints    feature2
1    12/3/2020   0       56         1
2    11/25/2020  13      26         0

Pandas apply() 方法可能不適用於此,因為添加了新列。 做這個的最好方式是什么?

有什么方法可以在列的每條記錄上應用單個 function 來通過在整個列上應用來做到這一點?

pandas 系列.dt存取器

  • 您的日期時間數據來自 pandas 列(系列),因此請使用.dt 訪問器
import pandas as pd

df = pd.DataFrame({'id': [1, 2],
                   'datetime': ['12/3/2020 0:56', '11/25/2020 13:26'],
                   'feature2': [1, 0]})
df['datetime'] = pd.to_datetime(df['datetime'])

 id            datetime  feature2
  1 2020-12-03 00:56:00         1
  2 2020-11-25 13:26:00         0

# create columns
df['hour'] = df['datetime'].dt.hour
df['min'] = df['datetime'].dt.minute
df['date'] = df['datetime'].dt.date

# final
 id            datetime  feature2  hour  min        date
  1 2020-12-03 00:56:00         1     0   56  2020-12-03
  2 2020-11-25 13:26:00         0    13   26  2020-11-25

重症監護病房

df.date=pd.to_datetime(df.date)
df.set_index(df.date, inplace=True)
df['hour']=df.index.hour
df['mints']=df.index.minute

暫無
暫無

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

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