对Pandas数据框架中的每一列记录应用相同的函数。

问题描述 投票:0回答:1

我有一个数据集,其中有一个具有特定格式的日期-时间列,我需要从这个列中创建新的功能,这意味着我需要从上述日期-时间列中提取信息,向数据框架添加新的列。我需要从这一列中创建新的功能,也就是说,我需要通过从上述日期-时间列中提取信息来添加新的列到数据框架中。我的示例输入的数据框架列如下。

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

预期的输出是。

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

Pandas apply()方法在添加新列时可能无法使用。最好的方法是什么?

有什么方法可以让我在列的每条记录上应用一个函数,通过应用在整个列上来实现这个目的?

python pandas dataframe preprocessor
1个回答
3
投票

大熊猫系列 .dt 配饰

  • 你的日期时间数据来自于pandas列(系列),所以使用了 .dt accessor
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

1
投票

IICU

df.date=pd.to_datetime(df.date)
df.set_index(df.date, inplace=True)
df['hour']=df.index.hour
df['mints']=df.index.minute
© www.soinside.com 2019 - 2024. All rights reserved.