示例
# 统计电影的分类情况 import matplotlib.pyplot as plt import numpy as np import pandas as pd file_path ./IMDB-Movie-Data.csv df pd.read_csv(file_path) # 统计分类的列表 temp_list df[ Genre ].str.split( , ).tolist() #print(temp_list) genre_list list(set([i for j in temp_list for i in j])) #print(genre_list) # 构造全为0的数组 zero_df pd.Dataframe(np.zeros((df.shape[0],len(genre_list))),columns genre_list) #print(zero_df) # 给每个电影出现分类的位置赋值1 for i in range(df.shape[0]): zero_df.loc[i,temp_list[i]] 1 #print(zero_df) # 统计每个分类的电影的数量和 genre_count zero_df.sum(axis 0) print(genre_count) genre_count genre_count.sort_values() _x genre_count.index _y genre_count.values plt.figure(figsize (20,8), dpi 100) plt.bar(range(len(_x)),_y) plt.xticks(range(len(_x)),_x) plt.show()二. pandas数据合并 join:默认情况下把行索引相同的数据合并到一起 merge:按照指定的列把数据按照一定的方式合并到一起
1 t1.merge(t2, on “a”,how “inner”) # 内连接,取交集
2 t1.merge(t2, on “a”,how “outter”) # 取并集
3 t1.merge(t2, on “a”,how “left”) # 以t1为准 NaN补全
4 t1.merge(t2,on “a”,how “right”) # 以t2为准 三. pandas分组和聚合
分组操作 df.groupby(by “) 得到DataframeGroupBy对象 可迭代 其中的每一个元素是一个元组
DataframeGroupBy对象优化方法
df.groupby(by ” ).mean()
df.groupby(by ).count()
df.groupby(by [’’ ‘’,’’ ‘’]).sum() 得到带复合索引的Dataframe
df.index #获取index
df.index [‘x’,‘y’] #指定index
df.reindex(list[“abcdef”]) #重新设定index
df.set_index( ? , drop False) #指定某一列为index
df.set_index( ? ).index.unique() #返回index的唯一值
1 Series复合索引取值 直接在括号[]中写索引即可
S1[“a”][“b”]
S1[“a”,“b”]
2 Dataframe复合索引
df.loc[“a”].loc[“b”]
交换里外层索引的位置df.swaplevel()
df.swaplevel().loc[“b”]



