[英]Subtracting values of a row for a specific column based on a specific condition in python 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.