簡體   English   中英

根據特定條件在 dataframe 行中添加值

[英]Add values in a dataframe row based on a specific condition

我有一個帶柱子的 dataframe。 第一個充滿了時間戳。 我想創建一個新列並根據每個時間戳的小時值添加 0 或 1。 例如, if %H >= "03" -> 1 else 0.

df 看起來像這樣:

2018-08-29T00:03:09      12    0                 
2018-08-23T00:08:10      2     0 

我想按照描述用"1s"更改第三列中的值。 提前感謝大家的努力!

假設您有一個 dataframe 如下所示,

import pandas as pd
from datetime import datetime

d={'time':['2018-08-29T00:03:09', '2018-08-29T12:03:09', '2018-08-31T10:05:09'],
    'serial':[1,2,3]}
data=pd.DataFrame(data=d)

data
           time             serial
0   2018-08-29T00:03:09       1
1   2018-08-29T12:03:09       2
2   2018-08-31T10:05:09       3

定義一個 function ,在此基礎上將獲得新的列值。

def func(t):
  if datetime.strptime(t, '%Y-%m-%dT%H:%M:%S').hour >= 3:
    return 1
  else: 
    return 0

現在插入一個新列,應用 function 來獲取值,

data.insert(2, 'new_column', data['time'].apply(lambda x: func(x)).tolist())

這是更新的 dataframe

data

            time              serial    new_column
0   2018-08-29T00:03:09          1          0
1   2018-08-29T12:03:09          2          1
2   2018-08-31T10:05:09          3          1

暫無
暫無

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

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