[英]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
產生成對的index
和row
,其中每一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.