データ分析演習 - スーパーの売上データ分析、csv入出力(サンプルセット付)

        はじめに: このようなデータが与えられた場合、レジの会計データから、どのような情報を抽出できますか? どれくらいの価値がありますか?そのような情報を見つけるのにどれくらいの時間がかかりますか?

自動化ツールを使用すると、数十行の Python コードで何ができるでしょうか?

まず、データセットをインポートします。

import pandas as pd
import numpy as np

flies = 'input.csv'
data=pd.read_csv(flies,encoding="gbk")

カテゴリをグループ化し、売上高を計算します。

a=[]  #创建空list来保存数据
b=[]

for name, group in data.groupby(['大类名称']):
  a.append(name)
  b.append((group['销售金额'].sum()))
print(a)  #验证大类名称
data_21={'名称':a,'金额':b}  #创建一个数据集来保存
data_21=pd.DataFrame(data_21)
data_21.to_csv('putout1.csv')  #输出为csv

カテゴリーを揃えて、グルーピングを促進するかどうか、売上金額を計算します。

a=[]
b=[]

for name, group in data.groupby(['中类名称', '是否促销']):  #对两个列表进行分组
    a.append(name)
    b.append((group['销售金额'].sum()))
print(a)
print(b)
data_22={'名称':a,'金额':b}
data_22=pd.DataFrame(data_22)
data_22.to_csv('putout2.csv')

販売日は、簡単にカウントできるようにシーケンスに変換されます。

b=data['销售日期']
print(b.count())

b1=1
s=1
tianshu=[]

for i in range(0,b.count()-1):  #如果两个序列前后不一样则认为是新的一天
    if b[i]==b[i+1]:
       tianshu.append(b1)
    else:
        b1=b1+1
    tianshu.append(b1)
print(tianshu)
data['天数']=tianshu  #将新生成的天数序列加入data数据中

週のシーケンスを生成します。

zhoushu=[]
zhou=1
for i in data['天数']:  #每隔7天为新的一周数
  if i <= 7*zhou:
    zhoushu.append(zhou)
  else:
    zhou=zhou+1
    zhoushu.append(zhou)
# print(zhoushu)
data['周数']=zhoushu

1週間の商品の販売額を数える:

a=[]
b=[]
for name, group in data.groupby(['商品类型', '周数']):
  a.append(name)
  b.append((group['销售金额'].sum()))
print(a)
print(b)

顧客の毎月の売上と消費日数の統計:

jine=[]
guke=[]

for name, group in data.groupby(['顾客编号', '销售月份']):#月份也可以用2015-01来表示
  guke.append(name)
  jine.append((group['销售金额'].sum()))
  print(list(name))
  print('本月消费天数为:',len((set((group['天数']).tolist()))))
  print('销售金额为:',(group['销售金额'].sum()))

結果を見てみましょう:

 データを使用すると、さまざまなグラフを簡単に描画して、分析結果を視覚化できます。

 自分で試してみてください、サンプルセット:

リンク: https: //pan.baidu.com/s/1gdQGaqq_g-BB1bkGKZtaaA 
?pwd=4is5 抽出コード:4is5 

補足のヒント:

groupby() グループ化関数

       groupby ( groupby ) 操作には、元のオブジェクトに対する次の操作のいずれかが含まれます。

  • 分割オブジェクト
  • 関数を適用する
  • 組み合わせた結果

        多くの場合、データをセットに分割し、各サブセットに何らかの関数を適用します。適用関数では、次のことができます。

  • コンピュートの要約統計の集計
  • Transform はいくつかのグループ固有の操作を実行します
  • フィルタリングにより、特定の状況下でデータが破棄される

おすすめ

転載: blog.csdn.net/qq_52213943/article/details/124496420