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

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

從數(shù)據(jù)框中選擇特定行并為新列執(zhí)行計算

從數(shù)據(jù)框中選擇特定行并為新列執(zhí)行計算

慕桂英546537 2023-03-22 10:38:12
我有一個看起來像這樣的數(shù)據(jù)框。       Task[ms]                              Funktion  ...     min     max  0        1              CALL_TK_CDDio_PFC_BEGIN_1MS  ...   0.640000   3.360000  1        1                       vAdcD_MainFunction  ...  21.280001  25.920000  2        1                          vPressE_Main1ms  ...  17.120001  81.279999  3        1  vPositionSensorPwm_MainFunction_Fast_In  ...   9.920000  13.760000  4        1                           CDDIO_1MS_1_IN  ...   2.240000   5.280000我必須選擇與此列名稱對應(yīng)的行。有 146 行df['Messvariable']。這是數(shù)據(jù)框的 Messvariable 列0      timeslices[0].profilerDataProcess[0]_C0[us]1      timeslices[0].profilerDataProcess[1]_C0[us]2      timeslices[0].profilerDataProcess[2]_C0[us]3      timeslices[0].profilerDataProcess[3]_C0[us]4      timeslices[0].profilerDataProcess[4]_C0[us]                141    timeslices[9].profilerDataProcess[0]_C0[us]142    timeslices[9].profilerDataProcess[1]_C0[us]143    timeslices[9].profilerDataProcess[2]_C0[us]144    timeslices[9].profilerDataProcess[3]_C0[us]145    timeslices[9].profilerDataTask_C0[us]我想通過此列選擇特定行并執(zhí)行這樣的操作 while  df['Messvariable'].str.contains("timeslices[1]"):   df['CPU_LOAD']=df['max']/(10000*2)并且對于具有不同計算的所有剩余時間片類似。這是行不通的。str.contains 返回空數(shù)據(jù)框。還有其他方法嗎?
查看完整描述

1 回答

?
臨摹微笑

TA貢獻(xiàn)1982條經(jīng)驗 獲得超2個贊

主要問題是regex=True默認(rèn)參數(shù)(pat適用于正則表達(dá)式)。只需將參數(shù)設(shè)置為或者您可以使用orFalse來完成:startswith()find()


df = pd.DataFrame.from_dict({

? ? 'Messvariable': ('timeslices[1]', 'timeslices[1]', 'empty', 'empty'),

? ? 'max': (1, 2, 3, 4),

})


mask = df['Messvariable'].str.contains('timeslices[1]', regex=False)

# or

# mask = df['Messvariable'].str.find('timeslices[1]') != -1

# or

# mask = df['Messvariable'].str.startswith('timeslices[1]')

df['CPU_LOAD'] = 0

df.loc[mask, 'CPU_LOAD'] = df[mask]['max'] / (10000 * 2)

print(df.head())


#? ? Messvariable? max? CPU_LOAD

# 0? timeslices[1]? ? 1? ?0.00005

# 1? timeslices[1]? ? 2? ?0.00010

# 2? ? ? ? ? empty? ? 3? ?0.00000

# 3? ? ? ? ? empty? ? 4? ?0.00000

更新。 對于更好地與自定義函數(shù)一起使用的不同計算apply:


df['CPU_LOAD'] = 0


def set_cpu_load(x):

? ? if x['Messvariable'].startswith('timeslices[1]'):

? ? ? ? x['CPU_LOAD'] = x['max'] / (10000 * 2)

? ? elif x['Messvariable'].startswith('timeslices[2]'):

? ? ? ? pass? # other calculation

? ? # elif ...

? ? return x


df = df.apply(set_cpu_load, axis=1)




查看完整回答
反對 回復(fù) 2023-03-22
  • 1 回答
  • 0 關(guān)注
  • 96 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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