![](/img/trans.png)
[英]TypeError: cannot convert the series to <class 'float'> / How do I apply a pandas df to a class object function?
[英]How do I convert object to float in panda using lambda and apply
我需要使用 apply 和 lambda 將“Ping (ms)”和“Download (Mbit/s)”從 object 類型轉換為浮點類型。 兩列都包含十進制數字。
謝謝,
我沒有收到任何錯誤,但它沒有轉換!
# Code Cell 14
# this disables a notebook warning that is not relevant for our use case
pd.options.mode.chained_assignment = None
#df_compact.dtypes
# Convert Ping and Download to float
df_compact_clean["Ping (ms)_float"]=df_compact["Ping (ms)"].apply(lambda row:float)
)
df_compact_clean["Download (Mbit/s)_float"] =df_compact["Download (Mbit/s)"].apply(lambda row: float)
如果你想使用lambda
那么你需要 function 和()
.apply(lambda row: float(row))
如果你在沒有lambda
的情況下使用它,那么在沒有()
的情況下使用 function
.apply(float)
但你可以使用
.astype(float)
import pandas as pd
data = {
'A': ['1', '2', '3'],
'B': ['4', '5', '6'],
'C': ['7', '8', '9']
}
df = pd.DataFrame(data)
print(df)
print(df.dtypes)
df['A'] = df['A'].apply(lambda row: float(row))
df['B'] = df['B'].apply(float)
df['C'] = df['C'].astype(float)
print(df)
print(df.dtypes)
您可以使用它將浮點 pandas 系列格式化為 int pandas 系列,您可以重復使用任何類型的數據:
for col,items in DataFrame.iteritems():
colitems = DataFrame[col]
if colitems.apply(lambda x: isinstance(x,float) ).any() == True:
DataFrame[col] = DataFrame[col].astype(int)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.