簡體   English   中英

Python - 使用 iterrows() 中的行系列

[英]Python - Using row Series from iterrows()

我正在嘗試將 iterrows() 用於 DataFrame...該列可能有一個值,例如 Fred、William、John,我想計算列出了多少個名字。 以下代碼效果很好......

for index, row in search_df:
     print(len(row["Name"].split(",")))

但是,當我嘗試實際使用 len() 的值時,它會給我錯誤...例如:

for index, row in search_df:
    row["Number of Names"] = len(row["Name"].split(","))

那會給我一個錯誤.. 'float' object 沒有屬性 'split' 之類的..

當我這樣做時:

    row["Number of Names"] = len(row["Name"].str.split(","))

它會給出錯誤: 'str' object has no attribute 'str'

看起來像一個字符串,但它是一個浮點數...嘗試將其視為字符串,它已經是一個字符串...沮喪...

如果您正在處理 dataframe,請嘗試以下操作:

df[“Name”].value_counts()

沒關系..我解決了...

for index, row in search_df:
    num_language = len(str(row["Language"]).split(","))
    search_df.loc[index, "Number of Names"] = num_language

不要使用循環

參考 - pandas 根據其他列的值創建新列/按行應用多列的 function

def count_names(row):
  return len(row['Name'].split(','))

df["Number of Names"] = df.apply(count_names, axis=1)

拆分,然后計算元素對我來說似乎效率低下。 您可以改用count

search_df['Name'].apply(lambda x: str(x).count(',')+1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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