簡體   English   中英

列表理解迭代 dataframe

[英]List comprehension to iterate through dataframe

我已經編寫代碼將 dataframe 的一行編碼為 json,如下所示:

def encode_df_metadata_row(df):
    return {'name': df['Title'].values[0], 'code': df['Code'].values[0], 'frequency': df['Frequency'].values[0], 'description': df['Subtitle'].values[0], 'source': df['Source'].values[0]}

現在我想通過一些轉換將整個 dataframe 編碼為 json,所以我寫了這個 function:

def encode_metadata_list(df_metadata):
    return [encode_df_metadata_row(df_row) for index, df_row in df_metadata.iterrows()]

然后我嘗試使用以下代碼調用 function:

df_oodler_metadata = pd.read_csv('DATA\oodler-datasets-metadata.csv')
response = encode_metadata_list(df_oodler_metadata)
print(response)

當我運行此代碼時,出現以下錯誤:

AttributeError: 'str' object has no attribute 'values'

我嘗試了很多變體,但我不斷收到類似的錯誤。 有人知道這樣做的正確方法嗎?

DataFrame.iterrows產生成對的indexrow ,其中每一row都是一個系列object。它為每一列存儲一個元素,因此encode_df_metadata_row(df) function 中的.values[0]部分變得無關緊要 - 這個的正確形式function 應該是:

def encode_df_metadata_row(row):
    return {'name': row['Title'], 'code': row['Code'], 'frequency': row['Frequency'], 'description': row['Subtitle'], 'source': row['Source']}

暫無
暫無

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

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