数据分析之 Pandas

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() 遍历 DataFrame
for index, row in df.iterrows():
print(index, row['Name'], row['Age'], row['City'])
# 使用 itertuples() 遍历 DataFrame
for row in df.itertuples():
print(row.Index, row.Name, row.Age, row.City)
# 使用 iteritems(),按列迭代 遍历 DataFrame
for 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()

参考

  1. pandas 中文教程