In [1]:
import pandas as pd
import datetime
import numpy as np

from fetch_gdelt_data import *
from clean_data import clean_df

pd.options.mode.chained_assignment = None

In [2]:
# Fetch
start = datetime.date(2015, 3, 30)
end = datetime.date(2015, 4, 2)

test_df = fetch_df(start, end, translingual=True, v='2')

In [3]:
# Clean
selected_df = clean_df(test_df)

In [4]:
def select_events(df, feature, selector):
    '''Example of use : select_events(selected_df, 'EventCode', lambda x: x[:2] == '08')'''
    return df[df[feature].apply(selector)]

In [5]:
# Filter
df = select_events(selected_df, 'Country_Name', lambda x: x == 'United States')

# Keep only year and month for aggregate
df['Year_Month'] = df['Day'].apply(lambda x: int(str(x)[:6]))

# Pivot on countries and average on AvgTone for each month
pd.pivot_table(df, values='AvgTone', index=['Country_Source'], columns=['Year_Month'], aggfunc=np.mean)


Out[5]:
Year_Month 201403 201404 201502 201503 201504
Country_Source
Bulgaria -0.696082 NaN NaN -1.098790 -1.360917
Burkina Faso NaN NaN NaN 0.071073 NaN
Burundi NaN NaN NaN NaN -2.035831
Afghanistan NaN NaN NaN -4.018562 -1.988304
Africa Regional NaN NaN NaN -1.347233 -1.606220
Albania NaN NaN NaN -2.528842 -4.433328
Algeria NaN NaN NaN -1.210871 -3.286436
Americas Regional NaN NaN NaN -1.577774 -3.856408
Angola NaN NaN NaN -5.247813 -0.723318
Argentina 2.185886 NaN NaN -1.513799 -2.106152
Armenia NaN NaN NaN -1.112416 -4.601323
Australia NaN NaN NaN -1.911653 -2.009825
Austria NaN NaN NaN -3.064705 -4.001782
Azerbaijan NaN NaN NaN -0.521660 -0.726601
Bahrain NaN NaN NaN -6.240250 -0.706257
Bangladesh NaN NaN NaN -0.046071 -2.585289
Belarus NaN NaN NaN -1.424709 -5.206042
Belgium -6.133333 NaN NaN -2.389713 -4.055766
Bolivia NaN NaN NaN -2.872102 -3.754300
Bonaire NaN -4.728132 NaN NaN NaN
Bosnia and Herzegovina NaN NaN NaN -0.896732 -0.639801
Brazil 0.279930 NaN NaN -0.972360 -2.446333
Bulgaria NaN NaN NaN -0.754799 -4.749801
Cameroon NaN NaN NaN 0.675676 -2.486924
Canada -0.280899 -4.693141 NaN -3.573572 -1.985919
Central Africa Republic NaN NaN NaN -0.217067 NaN
Central America Regional NaN NaN NaN 1.934347 NaN
Chile NaN NaN NaN -2.331762 -1.161498
China NaN NaN NaN 0.650528 0.217057
Cocos (Keeling) Islands NaN NaN NaN -1.903390 0.501009
... ... ... ... ... ...
Romania NaN NaN NaN -0.454254 -2.322950
Russia NaN NaN NaN -2.179259 -2.496497
Rwanda NaN NaN NaN NaN -2.429150
Sao Tome and Principe NaN NaN NaN -0.602410 NaN
Saudi Arabia NaN NaN NaN -1.993748 -0.382177
Senegal NaN NaN NaN -2.416771 -1.216090
Serbia NaN NaN NaN -3.009351 -0.798869
Slovakia NaN NaN NaN -1.223182 -2.672527
Slovenia NaN 0.335570 NaN -0.788546 -10.793997
South Africa NaN NaN NaN 0.000000 NaN
South Korea -1.928993 -1.303544 -1.709402 -1.309742 -1.193267
Spain NaN NaN NaN -1.826237 -1.646807
Sudan NaN NaN NaN -10.712283 NaN
Suriname NaN NaN NaN 0.714286 NaN
Sweden NaN NaN NaN -2.864894 -3.252629
Switzerland NaN NaN NaN -2.175371 -3.457318
Syria NaN NaN NaN -2.569414 -0.617273
Thailand NaN NaN NaN -8.237304 NaN
Turkey -1.265823 NaN NaN -1.165848 -1.574019
Tuvalu NaN NaN NaN -3.033387 -2.438236
Ukraine -0.299787 -1.317790 NaN -1.272361 -3.633513
United Arab Emirates NaN NaN NaN -1.583137 -0.278116
United Kingdom NaN NaN NaN -2.420546 -2.942216
United Nations NaN NaN NaN -3.695440 -4.060914
United States 1.252767 -0.713267 NaN -2.154538 -1.594303
Uruguay NaN NaN NaN -1.542076 -2.830513
Uzbekistan NaN NaN NaN -0.306748 NaN
Venezuela NaN -3.333333 NaN -1.934776 -1.505208
Vietnam NaN NaN NaN 2.628004 2.375483
Yemen NaN NaN NaN -4.036149 -4.329579

136 rows × 5 columns