Skip to content

Instantly share code, notes, and snippets.

@jdmoore7
Created April 3, 2020 14:42
Show Gist options
  • Save jdmoore7/f062916705494b51d8d625a910e9ea81 to your computer and use it in GitHub Desktop.
Save jdmoore7/f062916705494b51d8d625a910e9ea81 to your computer and use it in GitHub Desktop.
RetweetParser
class RetweetParser():
def __init__(self,data,user):
import ast
self.user = user
edge_list = []
for idx,row in data.iterrows():
if len(row[4]) > 5:
user_account = user
weight = np.log(row[5] + 1)
for idx_1, item in enumerate(ast.literal_eval(row[4])):
edge_list.append((user_account,item['screen_name'],weight))
for idx_2 in range(idx_1+1,len(ast.literal_eval(row[4]))):
name_a = ast.literal_eval(row[4])[idx_1]['screen_name']
name_b = ast.literal_eval(row[4])[idx_2]['screen_name']
edge_list.append((name_a,name_b,weight))
import csv
with open(f'{self.user}.csv', 'w', newline='') as csvfile:
fieldnames = ['user_a', 'user_b', 'log_retweet']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for row in edge_list:
writer.writerow({
'user_a': row[0],
'user_b': row[1],
'log_retweet': row[2]
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment