我的代碼有問題
data = pd.read_table('household_power_consumption.txt',sep=';',
low_memory=False,header=0, index_col=False,
parse_dates=[0])
df = pd.DataFrame(data, dtype=None)
col = df["Global_active_power"]
max_value=col.max()
print(max_value)
這是資料集的影像 在此處輸入影像描述
如您所見,“Global_active_power”列已被資料完全占據。但是,我的最大值回傳一個問號 (“?”)
我嘗試了幾個代碼,但值保持不變。有人可以幫我解決這個問題嗎
您可以從https://archive.ics.uci.edu/ml/datasets/individual household electric power consumption獲取資料
uj5u.com熱心網友回復:
可能并非Global_active_power列中的所有行都由數值填充。可能該行中的最新值缺少值并且填充的是“?”。因為整個列不是數字,并且max()回傳該行的最新值。
檢查示例:
df = pd.DataFrame({"x": [1,2,3], "y": ["32.32", "?","fef"], "z": ["32.32", "456", "?"]})
df
# output
x y z
0 1 32.32 32.32
1 2 ? 456
2 3 fef ?
df.x.max()
# output
3
df.y.max()
# output
'fef'
df.z.max()
# output
'?'
如果列不是數字資料型別,則max()始終回傳列中的最新值。
uj5u.com熱心網友回復:
列中的資料在匯入時是str型別 - 因此.max()在您想要的意義上沒有意義。看起來資料是浮動型別的,因此您需要將其轉換為 type float64,但首先將所有?值替換為NaN(因此型別轉換不會失敗)。也就是說,嘗試:
col = df['Global_active_power'].apply(lambda x: x if x != '?' else 'NaN')
.astype('float64')
作業示例:
import pandas as pd
data = pd.read_table('household_power_consumption.txt',\
sep=';',low_memory=False,\
header=0, index_col=False,parse_dates=[0])
df = pd.DataFrame(data,dtype=None)
col = df['Global_active_power'].apply(lambda x: x if x != '?' else 'NaN')\
.astype('float64')
print(col.max())
>>> 11.122
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/333464.html
下一篇:按兩列計算值
