我在 Pandas Rows 上的迭代存在復雜性問題。我有一個超過 30k 行的資料集,我需要為每個資料集添加一個新列,其中包含來自特定列的值。
belongs_node_df = pd.DataFrame.from_records(belongs_node, columns=['hashtag', 'tweets_id', 'tokenized_text','sentiment_compound'])
posted_node_df = pd.DataFrame.from_records(posted_node, columns=['username', 'num_followers', 'tweets_id'])
df_user_hashtag = pd.merge(posted_node_df, belongs_node_df, on='tweets_id', how='outer').sort_values('username')
df_user_hashtag['p'] = None
for i in range(len(df_user_hashtag)):
df_user_hashtag['p'][i] = 3 * df_user_hashtag['num_followers'][i]\df_user_hashtag['sentiment_compound'][i]
有一種有效的方法可以對每一行進行此操作嗎?非常感謝。:)
uj5u.com熱心網友回復:
你不應該遍歷行......這幾乎破壞了你從使用熊貓中獲得的所有好處
df_user_hashtag['p'] = 3 * df_user_hashtag['num_followers'] / df_user_hashtag['sentiment_compound']
uj5u.com熱心網友回復:
import pandas as pd
df = pd.read_excel('/content/Endere?os CS 2021.xlsx')
data = df.values.tolist()
for d in data:
print(d)
在這個例子中,我讀取了我的 excel 檔案,然后使用方法將其轉換為串列 .values.tolist() 然后我做了我之前所說的,我遍歷串列中的每一行。
結果是:
['Ana Lara', 'Alfa', 'Amigo']
['Ana Suely', 'Alfa', 'Amigo']
['Izabelly', 'Alfa', 'Amigo']
['Carol Loiola', 'Alfa', 'Amigo']
['Yasmin', 'Alfa', 'Amigo']
['Mariana', 'Alfa', 'Amigo']
['Tereza', 'Alfa', 'Amigo']
['Rívia', 'Alfa', 'Amigo']
['Stefany', 'Alfa', 'Amigo']
['Maria Eduarda', 'Alfa', 'Amigo']
['Meyssa', 'Alfa', 'Amigo']
['Arthur Figueiró', 'Epsilon', 'Amigo']
['Andriw', 'Epsilon', 'Amigo']
['Gabriel', 'Epsilon', 'Amigo']
['Tiago ', 'Epsilon', 'Amigo']
['Jo?o Pedro', 'Epsilon', 'Amigo']
['Carlos', 'Epsilon', 'Amigo']
['José Neto', 'Epsilon', 'Amigo']
['Raissa ', 'Beta', 'Pesquisador']
['Lara Yasmin', 'Beta', 'Pesquisador']
['Letícia', 'Beta', 'Pesquisador']
['Thalita Melo', 'Beta', 'Pesquisador']
['Isabel', 'Beta', 'Pesquisador']
['Melyssa', 'Beta', 'Excursionista']
['Sarah Gabrielle', 'Beta', 'Excursionista']
['Daniel Fernandes', 'Delta', 'Pioneiro']
['Arthur Soares', 'Delta', 'Pioneiro']
['Guido', 'Delta', 'Pioneiro']
['Emanoel', 'Delta', 'Pioneiro']
['Flávio', 'Delta', 'Pioneiro']
['Iohannes', 'Delta', 'Pioneiro']
['Lucas', 'Delta', 'Pesquisador']
['Beatriz Gillianne (Bia)', 'Sigma', 'Guia']
['Emilly Vitória', 'Sigma', 'Excursionista']
['Adriana', 'Sigma', 'Guia']
['Jade', 'Sigma', 'Guia']
['Sarah Leocádio', 'Sigma', 'Guia']
['Maria Eduarda', 'Sigma', 'Guia']
uj5u.com熱心網友回復:
我使用評論中的@Riley 建議解決了這個問題。
首先,我創建了一個獲取我想要的值的函式:
def get_p(tfidf, num_followers, compund):
return (tfidf * num_followers) * compund
其次,我使用 Numpy 的vectorize函式使用向量化來呼叫我的函式:
vfunc = numpy.vectorize(get_p)
df_user_hashtag['p'] = vfunc(1, df_user_hashtag['num_followers'], df_user_hashtag['sentiment_compound'])
就這樣!
uj5u.com熱心網友回復:
您可以使用方法 .tolist() 并遍歷串列的每一行
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/343397.html
