簡體   English   中英

如何使用 lambda 將 object 轉換為在熊貓中浮動並應用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM