第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將熊貓數(shù)據(jù)框的對象值轉(zhuǎn)換為小時數(shù)?

如何將熊貓數(shù)據(jù)框的對象值轉(zhuǎn)換為小時數(shù)?

手掌心 2022-07-05 17:54:08
我有這個數(shù)據(jù)框number_of_hrs  number_of_pts65             17              131             16 DAY          123             121             15.0            1我想將“6 DAY”之類的值轉(zhuǎn)換為小時數(shù)。可能嗎?
查看完整描述

4 回答

?
慕哥9229398

TA貢獻1877條經(jīng)驗 獲得超6個贊

pd.eval與 一起使用Series.str.replace。


df['number_of_hrs'] = pd.eval(df['number_of_hrs'].str.replace('DAY','*24'))

print(df)

#  number_of_hrs  number_of_pts

#0            65              1

#1             7              1

#2            31              1

#3           144              1

#4            23              1

#5            21              1

#6             5              1

或者


from ast import literal_eval

df['number_of_hrs'] = df['number_of_hrs'].str.replace('DAY','*24').apply(literal_eval)

#Alternative

#df['number_of_hrs'] = [literal_eval(s) for s in df['number_of_hrs'].str.replace('DAY','*24')]



查看完整回答
反對 回復 2022-07-05
?
海綿寶寶撒

TA貢獻1809條經(jīng)驗 獲得超8個贊

使用.loc和str.extract


使用正則表達式模式可以為您提供更多的靈活性,但 ansev 的pd.eval解決方案更巧妙。


idx = df.loc[df['number_of_hrs'].str.contains('day',case=False)].index


pat = '(\d+)\s{1}DAY'


hrs = (df.loc[df['number_of_hrs'].str.contains('day',case=False)]["number_of_hrs"].str.extract(

    pat

).astype(int) * 24)[0]


df.loc[idx,'number_of_hrs'] = hrs

print(df)


  number_of_hrs  number_of_pts

0            65              1

1             7              1

2            31              1

3           144              1

4            23              1

5            21              1

6           5.0              1


查看完整回答
反對 回復 2022-07-05
?
陪伴而非守候

TA貢獻1757條經(jīng)驗 獲得超8個贊

我的猜測是,這是一個時間增量,您可以獲取秒數(shù)并將其轉(zhuǎn)換為小時數(shù),如下所示

df.loc[df['number_of_hrs'].str.lower().contains('day'), 'number_of_hrs'] = df['number_of_hrs'].seconds//3600



查看完整回答
反對 回復 2022-07-05
?
MM們

TA貢獻1886條經(jīng)驗 獲得超2個贊

另一種解決方案:

import pandas as pd
import re

數(shù)據(jù):

df = pd.DataFrame({'number_of_hrs':[65,7,31,'6 DAY', 23,21,5.0], 'number of pts':[1,1,1,1,1,1,1]})

編碼:

df['number_of_hrs'] = pd.eval(df['number_of_hrs'].apply(lambda x: re.sub(r' DAY', '*24', str(x))))



查看完整回答
反對 回復 2022-07-05
  • 4 回答
  • 0 關注
  • 117 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號