Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import numpy
import pandas
import pandas as pd
from main import get_steam_API_response, get_steamspy_API_response, STEAM_SPY_GAME_INFO, STEAM_API_LANGUAGE, \
STEAM_GAME_INFO_URL, replace_owner_number_with_symbol
def get_dlc_data_steam(id):
url = STEAM_GAME_INFO_URL + str(id) + STEAM_API_LANGUAGE
response = get_steam_API_response(url, str(id))
if not response:
return pandas.Series({"appid": numpy.NaN, "name": numpy.NaN, "data_type":numpy.NaN, "price_eur": numpy.NaN,
"category": numpy.NaN, "main_publisher": numpy.NaN, "main_developer": numpy.NaN,
"release_date": numpy.NaN})
data = response[str(id)]["data"]
data_type = data["type"]
name = data["name"]
appid = data["steam_appid"]
price_eur = data["price_overview"]["final"] if "price_overview" in data.keys() else ""
category = [category["description"] for category in data["categories"]] if "categories" in data.keys() else []
main_developer = data["developers"][0] if "developers" in data.keys() else ""
main_publisher = data["publishers"][0] if "publishers" in data.keys() else ""
release_date = data["release_date"]["date"] if "release_date" in data.keys() and "date" \
in data["release_date"].keys() else ""
pass
return pandas.Series({"appid": appid, "name": name, "data_type":data_type, "price_eur": price_eur,
"category": category, "main_publisher": main_publisher, "main_developer": main_developer,
"release_date": release_date})
def get_dlc_data_steamspy(id):
url = STEAM_SPY_GAME_INFO + str(id)
response = get_steamspy_API_response(url)
if not response:
return pandas.Series({"owners": numpy.NaN})
owners = response["owners"]
return pandas.Series({"owners": owners})
def get_dlc_data_for_list(dlc_list):
return pd.DataFrame([get_dlc_data_steam(id).combine_first(get_dlc_data_steamspy(id)) for id in dlc_list])
def get_dlc_for_df(df):
dlc_column = df["dlc"].to_list()
dlc_list = []
for val in dlc_column:
if val and (isinstance(val, str) and len(val) > 2):
entry_str = val[1:-1]
entries = [int(entry) for entry in entry_str.split(", ")]
dlc_list += entries
return get_dlc_data_for_list(dlc_list)
if __name__ == "__main__":
data = pandas.read_csv("game_data_with_dlc.csv")
full_df = get_dlc_for_df(data)
full_df = replace_owner_number_with_symbol(full_df)
full_df.to_csv("dlc_data.csv")
pass