I have a simple pandas DataFrame, let's call it ratings:
ratings = pd.read_csv("ratings.csv", header=0, delimiter=",")
print(ratings)
userId  movieId  rating
    1        1     4.0
    1        3     4.5
    2        6     4.0
    3        2     5.5
    3       11     3.5
    3       32     3.0
    4        4     4.0
    5       26     4.5
I'm trying to get number of distinct values of a column, and I found this solution:
Count distinct values, use nunique:
df['hID'].nunique()Count only non-null values, use count:
df['hID'].count()Count total values including null values, use the size attribute:
df['hID'].size
So I followed:
print("%s unique users" % ratings["userId"].nunique())
And get an output like this:
(5,) unique users
After reading pandas.DataFrame.nunique() doc, I checked its datatype:
print(type(ratings["userId"].nunique()))
<class 'tuple'>
Now I don't know how to use this value in another variable as a numeric value. If I wrap it inside int():
print(type(int(ratings["userId"].nunique())))
the output will still be <class 'tuple'>, and calling that variable from another code will raise an error.
I'm quite new to Python, so I might give silly questions. Thanks for reading and helping me solving this!
Edit: here is my real code (since it doesn't support proper code formatting for commenting):
ratings = pd.read_csv(
    "../ml-latest-small/ratings.csv",
    header=0,
    delimiter=",",
    usecols=["userId", "movieId", "rating"]
)
numof_movies = ratings["movieId"].nunique()[0],
numof_users = ratings["userId"].nunique(),
numof_ratings = len(ratings)
print("\n%s movies, %s users and %s ratings are given\n" % (
    numof_movies,
    numof_users,
    type(numof_ratings)
))
And how the ratings.csv file looks like:
userId,movieId,rating,timestamp
1,1,4.0,964982703
1,3,4.0,964981247
1,6,4.0,964982224
1,47,5.0,964983815
1,50,5.0,964982931
...
And how the DataFrame looks when I print it to the terminal:
        userId  movieId  rating
0            1        1     4.0
1            1        3     4.0
2            1        6     4.0
3            1       47     5.0
4            1       50     5.0
...        ...      ...     ...
100831     610   166534     4.0
100832     610   168248     5.0
100833     610   168250     5.0
100834     610   168252     5.0
100835     610   170875     3.0