亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

熊貓數據框操作

熊貓數據框操作

一只甜甜圈 2022-10-06 19:39:58
誰能向我解釋如何解決這個問題。假設我有一個數據框,例如:Df = {'toto': ["A", "B", "C", "D"],       'titi': ["g", "t", "x", "z"],      'Energy': [180, 345, 234, 654],      'T10sec': [0.1, 0.4, 0.5, 1],       'T50sec': [5.3, 5.7, 8, 2]}為此,Df我創建了一個類似的函數def record(letter1, letter2, Energy_value, time):我想做的是檢查是否:輸入值在此Df,如果yes則Results = Df.thecorrespondingtime[i]假設對于列'toto'和'titi'輸入字母在 中Df,可能有兩種情況:Case1:輸入'Energy_value'在Df但不是'time'值然后我必須找到這個值的范圍并創建它的列并用插值填充它。情況2:列值'time'存在,但輸入的能量值沒有。在這里我需要做一個插值。我的限制是:如何檢查'time'列是否存在以及如何在兩個現有值之間放置。輸入能量值的相同問題。在這里,我嘗試了什么:def record(letter1, letter2, Energy_value, time='T15sec'):    For i in range(len(Df)):        If ((df.toto[i] == letter1) and             (df.titi[i] == letter2) and             (df.Energy[i] == Energy_value) and             (time in df)):但它不起作用。誰能幫我?
查看完整描述

1 回答

?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

如果問題基本上是關于在數據框中插入另一個時間列,這將是一個解決方案:


import pandas as np


df = pd.DataFrame({'toto': ["A", "B", "C", "D"], 

      'titi': ["g", "t", "x", "z"],

      'Energy': [180, 345, 234, 654],

      'T10sec': [0.1, 0.4, 0.5, 1], 

      'T50sec': [5.3, 5.7, 8, 2]})

df

    toto    titi    Energy  T10sec  T50sec

0   A       g       180     0.1     5.3

1   B       t       345     0.4     5.7

2   C       x       234     0.5     8.0

3   D       z       654     1.0     2.0

添加時間欄:


import numpy as np

time = 'T15sec'


if not time in df:

    df[time] = np.NaN


df.iloc[:, 3:] = df.iloc[:, 3:].T.sort_index().interpolate().T


df[['toto', 'titi', 'Energy', 'T10sec', time, 'T50sec']]


    toto    titi    Energy  T10sec  T15sec  T50sec

0   A       g       180     0.1     2.70    5.3

1   B       t       345     0.4     3.05    5.7

2   C       x       234     0.5     4.25    8.0

3   D       z       654     1.0     1.50    2.0


查看完整回答
反對 回復 2022-10-06
  • 1 回答
  • 0 關注
  • 115 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號