创建
array1 = np.array([1, 2, 3, 4, 5])array2 = np.arange(0, 20, 2)# 产生10个$[1, 100)$范围的随机整数array5 = np.random.randint(1, 100, 10)array7 = np.array([[1, 2, 3], [4, 5, 6]])array8 = np.zeros((3, 4))array9 = np.ones((3, 4))# 使用eye函数创建单位矩阵array11 = np.eye(4)# 通过reshape将一维数组变成二维数组array12 = np.array([1, 2, 3, 4, 5, 6]).reshape(2, 3)
Pandas 核心的数据类型是 Series(数据系列)、DataFrame(数据表/数据框),分别用于处理一维和二维的数据
csv读取数据,指定index
category_pd = pd.read_csv("category_temp.csv")category_pd.set_index('GroupID', inplace=True)
读取数据,指定数据类型
similarity_matrix = pd.read_csv(item_cf_result_file, dtype=str)
获取及修改指定数据
sales_df.loc[index, "name"]sales_df.loc[0, "name"]='truman'
排序
df=df.sort_values('price',ascending=True)
df 数据拼接
all_emp_df = pd.concat([emp_df, emp2_df])
遍历数据
# 使用 iterrows() 遍历 DataFramefor index, row in df.iterrows():print(index, row['Name'], row['Age'], row['City'])# 使用 itertuples() 遍历 DataFramefor row in df.itertuples():print(row.Index, row.Name, row.Age, row.City)# 使用 iteritems(),按列迭代 遍历 DataFramefor column, series in df.iteritems():print(column)for value in series:print(value)# 逆序遍历for index, row in df.iloc[::-1].iterrows():print(index, row)
按数值范围分桶
bins = [0, 100, 200, 300, 400, 500, 1000, 2000, 3000]labels = ['<100', '100-200', '200-300', '300-400', '400-500', '500-1000', '1000-2000', '>=2000']price_groups = pd.cut(df['price'], bins=bins, labels=labels, right=False)
分组求和
click_count_by_price = df.groupby(price_groups)['click_sum'].sum()
import pandas as pdimport matplotlib.pyplot as pltif __name__ == '__main__':df = pd.read_csv('../data/web_push.csv',parse_dates=['Date'])df = df.sort_values('Date', ascending=True)plt.xlabel("Date")plt.ylabel("Sales (Participation | Last Click)")df['Date'] = pd.to_datetime(df['Date'])plt.plot(df["Date"].dt.strftime('%m-%d'),df["Sales (Participation | Last Click)"])plt.title("Web push channel")plt.show()
数据以Date字段排序
df = df.sort_values('Date', ascending=True)
时间字段格式化
df["Date"].dt.strftime('%m-%d')
import matplotlib.pyplot as pltimport numpy as np# 生成数据x = np.arange(0, 6, 0.1) # 以0.1为单位,生成0到6的数据y1 = np.sin(x)y2 = np.cos(x)# 绘制图形plt.plot(x, y1, label="sin")plt.plot(x, y2, linestyle="--", label="cos") # 用虚线绘制plt.xlabel("x") # x轴标签plt.ylabel("y") # y轴标签plt.title('sin & cos') # 标题plt.legend()# 添加图例plt.show()