Files

2522 lines
82 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "03fb4961",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>detail_id</th>\n",
" <th>order_id</th>\n",
" <th>dishes_id</th>\n",
" <th>logicprn_name</th>\n",
" <th>parent_class_name</th>\n",
" <th>dishes_name</th>\n",
" <th>itemis_add</th>\n",
" <th>counts</th>\n",
" <th>amounts</th>\n",
" <th>cost</th>\n",
" <th>place_order_time</th>\n",
" <th>discount_amt</th>\n",
" <th>discount_reason</th>\n",
" <th>kick_back</th>\n",
" <th>add_inprice</th>\n",
" <th>add_info</th>\n",
" <th>bar_code</th>\n",
" <th>picture_file</th>\n",
" <th>emp_id</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2956</td>\n",
" <td>417</td>\n",
" <td>610062</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>蒜蓉生蚝</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>49</td>\n",
" <td>NaN</td>\n",
" <td>2016/8/111:05:00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>caipu/104001.jpg</td>\n",
" <td>1442</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2958</td>\n",
" <td>417</td>\n",
" <td>609957</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>蒙古烤羊腿</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>48</td>\n",
" <td>NaN</td>\n",
" <td>2016/8/111:07:00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>caipu/202003.jpg</td>\n",
" <td>1442</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2961</td>\n",
" <td>417</td>\n",
" <td>609950</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>大蒜苋菜</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>30</td>\n",
" <td>NaN</td>\n",
" <td>2016/8/111:07:00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>caipu/303001.jpg</td>\n",
" <td>1442</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2966</td>\n",
" <td>417</td>\n",
" <td>610038</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>芝麻烤紫菜</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>25</td>\n",
" <td>NaN</td>\n",
" <td>2016/8/111:11:00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>caipu/105002.jpg</td>\n",
" <td>1442</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2968</td>\n",
" <td>417</td>\n",
" <td>610003</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>蒜香包</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>13</td>\n",
" <td>NaN</td>\n",
" <td>2016/8/111:11:00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>caipu/503002.jpg</td>\n",
" <td>1442</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" detail_id order_id dishes_id logicprn_name parent_class_name \\\n",
"0 2956 417 610062 NaN NaN \n",
"1 2958 417 609957 NaN NaN \n",
"2 2961 417 609950 NaN NaN \n",
"3 2966 417 610038 NaN NaN \n",
"4 2968 417 610003 NaN NaN \n",
"\n",
" dishes_name itemis_add counts amounts cost place_order_time \\\n",
"0 蒜蓉生蚝 0 1 49 NaN 2016/8/111:05:00 \n",
"1 蒙古烤羊腿 0 1 48 NaN 2016/8/111:07:00 \n",
"2 大蒜苋菜 0 1 30 NaN 2016/8/111:07:00 \n",
"3 芝麻烤紫菜 0 1 25 NaN 2016/8/111:11:00 \n",
"4 蒜香包 0 1 13 NaN 2016/8/111:11:00 \n",
"\n",
" discount_amt discount_reason kick_back add_inprice add_info bar_code \\\n",
"0 NaN NaN NaN 0 NaN NaN \n",
"1 NaN NaN NaN 0 NaN NaN \n",
"2 NaN NaN NaN 0 NaN NaN \n",
"3 NaN NaN NaN 0 NaN NaN \n",
"4 NaN NaN NaN 0 NaN NaN \n",
"\n",
" picture_file emp_id \n",
"0 caipu/104001.jpg 1442 \n",
"1 caipu/202003.jpg 1442 \n",
"2 caipu/303001.jpg 1442 \n",
"3 caipu/105002.jpg 1442 \n",
"4 caipu/503002.jpg 1442 "
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"filepath='detail.csv'\n",
"#注意读取时的编码问题\n",
"df=pd.read_csv(filepath,encoding='gbk')\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "218f0753",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 10037 entries, 0 to 10036\n",
"Data columns (total 19 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 detail_id 10037 non-null int64 \n",
" 1 order_id 10037 non-null int64 \n",
" 2 dishes_id 10037 non-null int64 \n",
" 3 logicprn_name 0 non-null float64\n",
" 4 parent_class_name 0 non-null float64\n",
" 5 dishes_name 10037 non-null object \n",
" 6 itemis_add 10037 non-null int64 \n",
" 7 counts 10037 non-null int64 \n",
" 8 amounts 10037 non-null int64 \n",
" 9 cost 0 non-null float64\n",
" 10 place_order_time 10037 non-null object \n",
" 11 discount_amt 0 non-null float64\n",
" 12 discount_reason 0 non-null float64\n",
" 13 kick_back 0 non-null float64\n",
" 14 add_inprice 10037 non-null int64 \n",
" 15 add_info 0 non-null float64\n",
" 16 bar_code 0 non-null float64\n",
" 17 picture_file 10037 non-null object \n",
" 18 emp_id 10037 non-null int64 \n",
"dtypes: float64(8), int64(8), object(3)\n",
"memory usage: 1.5+ MB\n"
]
}
],
"source": [
"df.info()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "c649b2cd",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>detail_id</th>\n",
" <th>order_id</th>\n",
" <th>dishes_id</th>\n",
" <th>logicprn_name</th>\n",
" <th>parent_class_name</th>\n",
" <th>itemis_add</th>\n",
" <th>counts</th>\n",
" <th>amounts</th>\n",
" <th>cost</th>\n",
" <th>discount_amt</th>\n",
" <th>discount_reason</th>\n",
" <th>kick_back</th>\n",
" <th>add_inprice</th>\n",
" <th>add_info</th>\n",
" <th>bar_code</th>\n",
" <th>emp_id</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>10037.000000</td>\n",
" <td>10037.000000</td>\n",
" <td>10037.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>10037.0</td>\n",
" <td>10037.000000</td>\n",
" <td>10037.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>10037.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>10037.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>4712.339344</td>\n",
" <td>802.775630</td>\n",
" <td>609985.155026</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>1.108499</td>\n",
" <td>44.821361</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1207.549766</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>1747.410959</td>\n",
" <td>320.209032</td>\n",
" <td>118.412398</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0.611016</td>\n",
" <td>35.815435</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>166.800691</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>753.000000</td>\n",
" <td>137.000000</td>\n",
" <td>606000.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>982.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>3369.000000</td>\n",
" <td>542.000000</td>\n",
" <td>609952.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>1.000000</td>\n",
" <td>25.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1097.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>4666.000000</td>\n",
" <td>780.000000</td>\n",
" <td>609983.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>1.000000</td>\n",
" <td>35.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1147.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>5971.000000</td>\n",
" <td>1110.000000</td>\n",
" <td>610021.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>1.000000</td>\n",
" <td>56.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1293.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>8246.000000</td>\n",
" <td>1324.000000</td>\n",
" <td>610072.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>10.000000</td>\n",
" <td>178.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1610.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" detail_id order_id dishes_id logicprn_name \\\n",
"count 10037.000000 10037.000000 10037.000000 0.0 \n",
"mean 4712.339344 802.775630 609985.155026 NaN \n",
"std 1747.410959 320.209032 118.412398 NaN \n",
"min 753.000000 137.000000 606000.000000 NaN \n",
"25% 3369.000000 542.000000 609952.000000 NaN \n",
"50% 4666.000000 780.000000 609983.000000 NaN \n",
"75% 5971.000000 1110.000000 610021.000000 NaN \n",
"max 8246.000000 1324.000000 610072.000000 NaN \n",
"\n",
" parent_class_name itemis_add counts amounts cost \\\n",
"count 0.0 10037.0 10037.000000 10037.000000 0.0 \n",
"mean NaN 0.0 1.108499 44.821361 NaN \n",
"std NaN 0.0 0.611016 35.815435 NaN \n",
"min NaN 0.0 1.000000 1.000000 NaN \n",
"25% NaN 0.0 1.000000 25.000000 NaN \n",
"50% NaN 0.0 1.000000 35.000000 NaN \n",
"75% NaN 0.0 1.000000 56.000000 NaN \n",
"max NaN 0.0 10.000000 178.000000 NaN \n",
"\n",
" discount_amt discount_reason kick_back add_inprice add_info \\\n",
"count 0.0 0.0 0.0 10037.0 0.0 \n",
"mean NaN NaN NaN 0.0 NaN \n",
"std NaN NaN NaN 0.0 NaN \n",
"min NaN NaN NaN 0.0 NaN \n",
"25% NaN NaN NaN 0.0 NaN \n",
"50% NaN NaN NaN 0.0 NaN \n",
"75% NaN NaN NaN 0.0 NaN \n",
"max NaN NaN NaN 0.0 NaN \n",
"\n",
" bar_code emp_id \n",
"count 0.0 10037.000000 \n",
"mean NaN 1207.549766 \n",
"std NaN 166.800691 \n",
"min NaN 982.000000 \n",
"25% NaN 1097.000000 \n",
"50% NaN 1147.000000 \n",
"75% NaN 1293.000000 \n",
"max NaN 1610.000000 "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "c68b394d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([2956, 2958, 2961, ..., 5379, 5380, 5688], dtype=int64)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['detail_id'].values #这是一个numpy,如果取df['detail_id'],则其为dataframe的series,也就是dataframe的一列"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "06ff220e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(Index(['detail_id', 'order_id', 'dishes_id', 'logicprn_name',\n",
" 'parent_class_name', 'dishes_name', 'itemis_add', 'counts', 'amounts',\n",
" 'cost', 'place_order_time', 'discount_amt', 'discount_reason',\n",
" 'kick_back', 'add_inprice', 'add_info', 'bar_code', 'picture_file',\n",
" 'emp_id'],\n",
" dtype='object'),\n",
" (10037, 19),\n",
" 190703)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.columns,df.shape,df.size"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "116c7fd1",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>order_id</th>\n",
" <th>dishes_name</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>145</th>\n",
" <td>458</td>\n",
" <td>蒜香辣花甲</td>\n",
" </tr>\n",
" <tr>\n",
" <th>146</th>\n",
" <td>458</td>\n",
" <td>剁椒鱼头</td>\n",
" </tr>\n",
" <tr>\n",
" <th>147</th>\n",
" <td>458</td>\n",
" <td>凉拌蒜蓉西兰花</td>\n",
" </tr>\n",
" <tr>\n",
" <th>148</th>\n",
" <td>458</td>\n",
" <td>木须豌豆</td>\n",
" </tr>\n",
" <tr>\n",
" <th>149</th>\n",
" <td>458</td>\n",
" <td>辣炒鱿鱼</td>\n",
" </tr>\n",
" <tr>\n",
" <th>150</th>\n",
" <td>458</td>\n",
" <td>酸辣藕丁</td>\n",
" </tr>\n",
" <tr>\n",
" <th>151</th>\n",
" <td>458</td>\n",
" <td>炝炒大白菜</td>\n",
" </tr>\n",
" <tr>\n",
" <th>152</th>\n",
" <td>458</td>\n",
" <td>香菇鸡肉粥</td>\n",
" </tr>\n",
" <tr>\n",
" <th>153</th>\n",
" <td>458</td>\n",
" <td>干锅田鸡</td>\n",
" </tr>\n",
" <tr>\n",
" <th>154</th>\n",
" <td>458</td>\n",
" <td>桂圆枸杞鸽子汤</td>\n",
" </tr>\n",
" <tr>\n",
" <th>155</th>\n",
" <td>458</td>\n",
" <td>五香酱驴肉</td>\n",
" </tr>\n",
" <tr>\n",
" <th>156</th>\n",
" <td>458</td>\n",
" <td>路易拉菲红酒干红</td>\n",
" </tr>\n",
" <tr>\n",
" <th>157</th>\n",
" <td>458</td>\n",
" <td>避风塘炒蟹</td>\n",
" </tr>\n",
" <tr>\n",
" <th>158</th>\n",
" <td>458</td>\n",
" <td>白饭/大碗</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" order_id dishes_name\n",
"145 458 蒜香辣花甲\n",
"146 458 剁椒鱼头\n",
"147 458 凉拌蒜蓉西兰花\n",
"148 458 木须豌豆\n",
"149 458 辣炒鱿鱼\n",
"150 458 酸辣藕丁\n",
"151 458 炝炒大白菜\n",
"152 458 香菇鸡肉粥\n",
"153 458 干锅田鸡\n",
"154 458 桂圆枸杞鸽子汤\n",
"155 458 五香酱驴肉\n",
"156 458 路易拉菲红酒干红\n",
"157 458 避风塘炒蟹\n",
"158 458 白饭/大碗"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#提取order_id=458的数据,再取第1列和第5列\n",
"detail=df\n",
"detail.iloc[(detail['order_id']==458).values,[1,5]]"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "c72626fc",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"白饭/大碗 323\n",
"凉拌菠菜 269\n",
"谷稻小庄 238\n",
"麻辣小龙虾 216\n",
"辣炒鱿鱼 189\n",
" ... \n",
"特醇嘉士伯啤酒罐装 13\n",
"鸡蛋、肉末肠粉 12\n",
"三丝鳝鱼 10\n",
"百里香奶油烤紅酒牛肉 5\n",
"铁板牛肉 3\n",
"Name: dishes_name, Length: 145, dtype: int64"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dishes=df['dishes_name'].value_counts()\n",
"dishes"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "6a3d2cee",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>info_id</th>\n",
" <th>emp_id</th>\n",
" <th>number_consumers</th>\n",
" <th>mode</th>\n",
" <th>dining_table_id</th>\n",
" <th>dining_table_name</th>\n",
" <th>expenditure</th>\n",
" <th>dishes_count</th>\n",
" <th>accounts_payable</th>\n",
" <th>use_start_time</th>\n",
" <th>...</th>\n",
" <th>lock_time</th>\n",
" <th>cashier_id</th>\n",
" <th>pc_id</th>\n",
" <th>order_number</th>\n",
" <th>org_id</th>\n",
" <th>print_doc_bill_num</th>\n",
" <th>lock_table_info</th>\n",
" <th>order_status</th>\n",
" <th>phone</th>\n",
" <th>name</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>417</td>\n",
" <td>1442</td>\n",
" <td>4</td>\n",
" <td>NaN</td>\n",
" <td>1501</td>\n",
" <td>1022</td>\n",
" <td>165</td>\n",
" <td>5</td>\n",
" <td>165</td>\n",
" <td>2016/8/1 11:05:36</td>\n",
" <td>...</td>\n",
" <td>2016/8/1 11:11:46</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>330</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>18688880641</td>\n",
" <td>苗宇怡</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>301</td>\n",
" <td>1095</td>\n",
" <td>3</td>\n",
" <td>NaN</td>\n",
" <td>1430</td>\n",
" <td>1031</td>\n",
" <td>321</td>\n",
" <td>6</td>\n",
" <td>321</td>\n",
" <td>2016/8/1 11:15:57</td>\n",
" <td>...</td>\n",
" <td>2016/8/1 11:31:55</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>328</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>18688880174</td>\n",
" <td>赵颖</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>413</td>\n",
" <td>1147</td>\n",
" <td>6</td>\n",
" <td>NaN</td>\n",
" <td>1488</td>\n",
" <td>1009</td>\n",
" <td>854</td>\n",
" <td>15</td>\n",
" <td>854</td>\n",
" <td>2016/8/1 12:42:52</td>\n",
" <td>...</td>\n",
" <td>2016/8/1 12:54:37</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>330</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>18688880276</td>\n",
" <td>徐毅凡</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>415</td>\n",
" <td>1166</td>\n",
" <td>4</td>\n",
" <td>NaN</td>\n",
" <td>1502</td>\n",
" <td>1023</td>\n",
" <td>466</td>\n",
" <td>10</td>\n",
" <td>466</td>\n",
" <td>2016/8/1 12:51:38</td>\n",
" <td>...</td>\n",
" <td>2016/8/1 13:08:20</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>330</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>18688880231</td>\n",
" <td>张大鹏</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>392</td>\n",
" <td>1094</td>\n",
" <td>10</td>\n",
" <td>NaN</td>\n",
" <td>1499</td>\n",
" <td>1020</td>\n",
" <td>704</td>\n",
" <td>24</td>\n",
" <td>704</td>\n",
" <td>2016/8/1 12:58:44</td>\n",
" <td>...</td>\n",
" <td>2016/8/1 13:07:16</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>330</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>18688880173</td>\n",
" <td>孙熙凯</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>940</th>\n",
" <td>641</td>\n",
" <td>1095</td>\n",
" <td>8</td>\n",
" <td>NaN</td>\n",
" <td>1492</td>\n",
" <td>1013</td>\n",
" <td>679</td>\n",
" <td>12</td>\n",
" <td>679</td>\n",
" <td>2016/8/31 21:23:48</td>\n",
" <td>...</td>\n",
" <td>2016/8/31 21:31:48</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>330</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>18688880307</td>\n",
" <td>李靖</td>\n",
" </tr>\n",
" <tr>\n",
" <th>941</th>\n",
" <td>672</td>\n",
" <td>1089</td>\n",
" <td>6</td>\n",
" <td>NaN</td>\n",
" <td>1489</td>\n",
" <td>1010</td>\n",
" <td>800</td>\n",
" <td>24</td>\n",
" <td>800</td>\n",
" <td>2016/8/31 21:24:12</td>\n",
" <td>...</td>\n",
" <td>2016/8/31 21:56:12</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>330</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>18688880305</td>\n",
" <td>莫言</td>\n",
" </tr>\n",
" <tr>\n",
" <th>942</th>\n",
" <td>692</td>\n",
" <td>1155</td>\n",
" <td>8</td>\n",
" <td>NaN</td>\n",
" <td>1492</td>\n",
" <td>1013</td>\n",
" <td>735</td>\n",
" <td>10</td>\n",
" <td>735</td>\n",
" <td>2016/8/31 21:25:18</td>\n",
" <td>...</td>\n",
" <td>2016/8/31 21:33:34</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>330</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>18688880327</td>\n",
" <td>习一冰</td>\n",
" </tr>\n",
" <tr>\n",
" <th>943</th>\n",
" <td>647</td>\n",
" <td>1094</td>\n",
" <td>4</td>\n",
" <td>NaN</td>\n",
" <td>1485</td>\n",
" <td>1006</td>\n",
" <td>262</td>\n",
" <td>9</td>\n",
" <td>262</td>\n",
" <td>2016/8/31 21:37:39</td>\n",
" <td>...</td>\n",
" <td>2016/8/31 21:55:39</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>330</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>18688880207</td>\n",
" <td>章春华</td>\n",
" </tr>\n",
" <tr>\n",
" <th>944</th>\n",
" <td>570</td>\n",
" <td>1113</td>\n",
" <td>8</td>\n",
" <td>NaN</td>\n",
" <td>1517</td>\n",
" <td>1038</td>\n",
" <td>589</td>\n",
" <td>13</td>\n",
" <td>589</td>\n",
" <td>2016/8/31 21:41:56</td>\n",
" <td>...</td>\n",
" <td>2016/8/31 21:32:56</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>330</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>18688880313</td>\n",
" <td>唐雅嘉</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>945 rows × 21 columns</p>\n",
"</div>"
],
"text/plain": [
" info_id emp_id number_consumers mode dining_table_id \\\n",
"0 417 1442 4 NaN 1501 \n",
"1 301 1095 3 NaN 1430 \n",
"2 413 1147 6 NaN 1488 \n",
"3 415 1166 4 NaN 1502 \n",
"4 392 1094 10 NaN 1499 \n",
".. ... ... ... ... ... \n",
"940 641 1095 8 NaN 1492 \n",
"941 672 1089 6 NaN 1489 \n",
"942 692 1155 8 NaN 1492 \n",
"943 647 1094 4 NaN 1485 \n",
"944 570 1113 8 NaN 1517 \n",
"\n",
" dining_table_name expenditure dishes_count accounts_payable \\\n",
"0 1022 165 5 165 \n",
"1 1031 321 6 321 \n",
"2 1009 854 15 854 \n",
"3 1023 466 10 466 \n",
"4 1020 704 24 704 \n",
".. ... ... ... ... \n",
"940 1013 679 12 679 \n",
"941 1010 800 24 800 \n",
"942 1013 735 10 735 \n",
"943 1006 262 9 262 \n",
"944 1038 589 13 589 \n",
"\n",
" use_start_time ... lock_time cashier_id pc_id \\\n",
"0 2016/8/1 11:05:36 ... 2016/8/1 11:11:46 NaN NaN \n",
"1 2016/8/1 11:15:57 ... 2016/8/1 11:31:55 NaN NaN \n",
"2 2016/8/1 12:42:52 ... 2016/8/1 12:54:37 NaN NaN \n",
"3 2016/8/1 12:51:38 ... 2016/8/1 13:08:20 NaN NaN \n",
"4 2016/8/1 12:58:44 ... 2016/8/1 13:07:16 NaN NaN \n",
".. ... ... ... ... ... \n",
"940 2016/8/31 21:23:48 ... 2016/8/31 21:31:48 NaN NaN \n",
"941 2016/8/31 21:24:12 ... 2016/8/31 21:56:12 NaN NaN \n",
"942 2016/8/31 21:25:18 ... 2016/8/31 21:33:34 NaN NaN \n",
"943 2016/8/31 21:37:39 ... 2016/8/31 21:55:39 NaN NaN \n",
"944 2016/8/31 21:41:56 ... 2016/8/31 21:32:56 NaN NaN \n",
"\n",
" order_number org_id print_doc_bill_num lock_table_info order_status \\\n",
"0 NaN 330 NaN NaN 1 \n",
"1 NaN 328 NaN NaN 1 \n",
"2 NaN 330 NaN NaN 1 \n",
"3 NaN 330 NaN NaN 1 \n",
"4 NaN 330 NaN NaN 1 \n",
".. ... ... ... ... ... \n",
"940 NaN 330 NaN NaN 1 \n",
"941 NaN 330 NaN NaN 1 \n",
"942 NaN 330 NaN NaN 1 \n",
"943 NaN 330 NaN NaN 1 \n",
"944 NaN 330 NaN NaN 1 \n",
"\n",
" phone name \n",
"0 18688880641 苗宇怡 \n",
"1 18688880174 赵颖 \n",
"2 18688880276 徐毅凡 \n",
"3 18688880231 张大鹏 \n",
"4 18688880173 孙熙凯 \n",
".. ... ... \n",
"940 18688880307 李靖 \n",
"941 18688880305 莫言 \n",
"942 18688880327 习一冰 \n",
"943 18688880207 章春华 \n",
"944 18688880313 唐雅嘉 \n",
"\n",
"[945 rows x 21 columns]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data=pd.read_csv('meal_order_info.csv',encoding='gbk')\n",
"data"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "d7236136",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 1\n",
"1 1\n",
"2 1\n",
"3 1\n",
"4 1\n",
" ..\n",
"10032 1\n",
"10033 1\n",
"10034 1\n",
"10035 1\n",
"10036 1\n",
"Name: counts, Length: 10037, dtype: int64"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['counts']"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "74ded866",
"metadata": {},
"outputs": [],
"source": [
"data_gb=df[['order_id','counts','amounts']].groupby(by='order_id')"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "086605b5",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>counts</th>\n",
" <th>amounts</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>sum</th>\n",
" <td>11126.0</td>\n",
" <td>449872.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>NaN</td>\n",
" <td>44.821361</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" counts amounts\n",
"sum 11126.0 449872.000000\n",
"mean NaN 44.821361"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import numpy as np\n",
"df[['counts','amounts']].agg(np.sum)\n",
"df[['counts','amounts']].agg([np.sum,np.mean])\n",
"#分别对counts做求和,对amounts做求和以及求均值\n",
"df[['counts','amounts']].agg({'counts':np.sum,'amounts':[np.sum,np.mean]})"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "a3b81087",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>counts</th>\n",
" <th>amounts</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>2401</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>2304</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>900</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>625</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>169</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" counts amounts\n",
"0 1 2401\n",
"1 1 2304\n",
"2 1 900\n",
"3 1 625\n",
"4 1 169"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['counts','amounts']].transform(lambda x:x**2).head()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "654c1732",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>counts</th>\n",
" <th>amounts</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" <td>36</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0</td>\n",
" <td>36</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0</td>\n",
" <td>36</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0</td>\n",
" <td>36</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0</td>\n",
" <td>36</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10032</th>\n",
" <td>0</td>\n",
" <td>102</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10033</th>\n",
" <td>0</td>\n",
" <td>102</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10034</th>\n",
" <td>0</td>\n",
" <td>59</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10035</th>\n",
" <td>0</td>\n",
" <td>59</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10036</th>\n",
" <td>0</td>\n",
" <td>102</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>10037 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" counts amounts\n",
"0 0 36\n",
"1 0 36\n",
"2 0 36\n",
"3 0 36\n",
"4 0 36\n",
"... ... ...\n",
"10032 0 102\n",
"10033 0 102\n",
"10034 0 59\n",
"10035 0 59\n",
"10036 0 102\n",
"\n",
"[10037 rows x 2 columns]"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_gb.transform(lambda x: x.max()-x.min())"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "778574f4",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>amounts</th>\n",
" <th>counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>order_id</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>137</th>\n",
" <td>194</td>\n",
" <td>9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>162</th>\n",
" <td>1032</td>\n",
" <td>18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>163</th>\n",
" <td>182</td>\n",
" <td>10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>165</th>\n",
" <td>953</td>\n",
" <td>21</td>\n",
" </tr>\n",
" <tr>\n",
" <th>166</th>\n",
" <td>241</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1320</th>\n",
" <td>78</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1321</th>\n",
" <td>458</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1322</th>\n",
" <td>547</td>\n",
" <td>13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1323</th>\n",
" <td>764</td>\n",
" <td>15</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1324</th>\n",
" <td>438</td>\n",
" <td>13</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>942 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" amounts counts\n",
"order_id \n",
"137 194 9\n",
"162 1032 18\n",
"163 182 10\n",
"165 953 21\n",
"166 241 7\n",
"... ... ...\n",
"1320 78 1\n",
"1321 458 7\n",
"1322 547 13\n",
"1323 764 15\n",
"1324 438 13\n",
"\n",
"[942 rows x 2 columns]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.pivot_table(df[['order_id','counts','amounts']],index='order_id',aggfunc=np.sum)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "902ea4c5",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th>amounts</th>\n",
" <th>counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>order_id</th>\n",
" <th>dishes_name</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"5\" valign=\"top\">137</th>\n",
" <th>农夫山泉NFC果汁100%橙汁</th>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>凉拌菠菜</th>\n",
" <td>27</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>番茄炖牛腩</th>\n",
" <td>35</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>白饭/小碗</th>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>西瓜胡萝卜沙拉</th>\n",
" <td>26</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"5\" valign=\"top\">1324</th>\n",
" <th>花蛤蒸蛋</th>\n",
" <td>37</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>葱油凉拌藕片</th>\n",
" <td>30</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>香烤牛排</th>\n",
" <td>55</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>香菇鹌鹑蛋</th>\n",
" <td>39</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>黑米恋上葡萄</th>\n",
" <td>33</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>10036 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" amounts counts\n",
"order_id dishes_name \n",
"137 农夫山泉NFC果汁100%橙汁 6 1\n",
" 凉拌菠菜 27 1\n",
" 番茄炖牛腩 35 1\n",
" 白饭/小碗 1 4\n",
" 西瓜胡萝卜沙拉 26 1\n",
"... ... ...\n",
"1324 花蛤蒸蛋 37 1\n",
" 葱油凉拌藕片 30 1\n",
" 香烤牛排 55 1\n",
" 香菇鹌鹑蛋 39 1\n",
" 黑米恋上葡萄 33 1\n",
"\n",
"[10036 rows x 2 columns]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.pivot_table(df[['order_id','counts','amounts','dishes_name']],index=['order_id','dishes_name'],aggfunc=np.sum)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "cc5ff0fd",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"10\" halign=\"left\">amounts</th>\n",
" <th>...</th>\n",
" <th colspan=\"10\" halign=\"left\">counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>dishes_name</th>\n",
" <th>38度剑南春</th>\n",
" <th>42度海之蓝</th>\n",
" <th>50度古井贡酒</th>\n",
" <th>52度泸州老窖</th>\n",
" <th>53度茅台</th>\n",
" <th>一品香酥藕</th>\n",
" <th>三丝鳝鱼</th>\n",
" <th>三色凉拌手撕兔</th>\n",
" <th>不加一滴油的酸奶蛋糕</th>\n",
" <th>五彩藕苗</th>\n",
" <th>...</th>\n",
" <th>香酥两吃大虾</th>\n",
" <th>鱼香肉丝拌面</th>\n",
" <th>鲜美鳝鱼</th>\n",
" <th>鸡蛋、肉末肠粉</th>\n",
" <th>麻辣小龙虾</th>\n",
" <th>黄尾袋鼠西拉子红葡萄酒</th>\n",
" <th>黄油曲奇饼干</th>\n",
" <th>黄花菜炒木耳</th>\n",
" <th>黑米恋上葡萄</th>\n",
" <th>All</th>\n",
" </tr>\n",
" <tr>\n",
" <th>order_id</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>137</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>162</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>128.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1.0</td>\n",
" <td>NaN</td>\n",
" <td>2.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>163</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>165</th>\n",
" <td>80.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>10.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1.0</td>\n",
" <td>NaN</td>\n",
" <td>21</td>\n",
" </tr>\n",
" <tr>\n",
" <th>166</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1321</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1322</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1323</th>\n",
" <td>80.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>15</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1324</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>7.0</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1.0</td>\n",
" <td>13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>All</th>\n",
" <td>1920.0</td>\n",
" <td>1683.0</td>\n",
" <td>1890.0</td>\n",
" <td>3498.0</td>\n",
" <td>4608.0</td>\n",
" <td>480.0</td>\n",
" <td>550.0</td>\n",
" <td>1452.0</td>\n",
" <td>252.0</td>\n",
" <td>1435.0</td>\n",
" <td>...</td>\n",
" <td>179.0</td>\n",
" <td>40.0</td>\n",
" <td>22.0</td>\n",
" <td>14.0</td>\n",
" <td>219.0</td>\n",
" <td>53.0</td>\n",
" <td>28.0</td>\n",
" <td>62.0</td>\n",
" <td>58.0</td>\n",
" <td>11126</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>943 rows × 292 columns</p>\n",
"</div>"
],
"text/plain": [
" amounts \\\n",
"dishes_name 38度剑南春 42度海之蓝 50度古井贡酒 52度泸州老窖 53度茅台 一品香酥藕 三丝鳝鱼 三色凉拌手撕兔 \n",
"order_id \n",
"137 NaN NaN NaN NaN NaN NaN NaN NaN \n",
"162 NaN NaN NaN NaN 128.0 NaN NaN NaN \n",
"163 NaN NaN NaN NaN NaN NaN NaN NaN \n",
"165 80.0 NaN NaN NaN NaN 10.0 NaN NaN \n",
"166 NaN NaN NaN NaN NaN NaN NaN NaN \n",
"... ... ... ... ... ... ... ... ... \n",
"1321 NaN NaN NaN NaN NaN NaN NaN NaN \n",
"1322 NaN NaN NaN NaN NaN NaN NaN NaN \n",
"1323 80.0 NaN NaN NaN NaN NaN NaN NaN \n",
"1324 NaN NaN NaN NaN NaN NaN NaN NaN \n",
"All 1920.0 1683.0 1890.0 3498.0 4608.0 480.0 550.0 1452.0 \n",
"\n",
" ... counts \\\n",
"dishes_name 不加一滴油的酸奶蛋糕 五彩藕苗 ... 香酥两吃大虾 鱼香肉丝拌面 鲜美鳝鱼 鸡蛋、肉末肠粉 麻辣小龙虾 \n",
"order_id ... \n",
"137 NaN NaN ... NaN NaN NaN NaN 1.0 \n",
"162 NaN NaN ... NaN NaN NaN NaN 1.0 \n",
"163 NaN NaN ... NaN NaN NaN NaN 1.0 \n",
"165 NaN NaN ... NaN NaN NaN NaN NaN \n",
"166 NaN NaN ... NaN NaN NaN NaN NaN \n",
"... ... ... ... ... ... ... ... ... \n",
"1321 NaN NaN ... NaN NaN NaN NaN NaN \n",
"1322 NaN NaN ... NaN NaN NaN NaN NaN \n",
"1323 NaN NaN ... NaN NaN NaN NaN NaN \n",
"1324 7.0 NaN ... NaN NaN NaN NaN NaN \n",
"All 252.0 1435.0 ... 179.0 40.0 22.0 14.0 219.0 \n",
"\n",
" \n",
"dishes_name 黄尾袋鼠西拉子红葡萄酒 黄油曲奇饼干 黄花菜炒木耳 黑米恋上葡萄 All \n",
"order_id \n",
"137 NaN NaN NaN NaN 9 \n",
"162 NaN 2.0 NaN NaN 18 \n",
"163 NaN NaN NaN NaN 10 \n",
"165 NaN NaN 1.0 NaN 21 \n",
"166 NaN NaN NaN NaN 7 \n",
"... ... ... ... ... ... \n",
"1321 NaN NaN NaN NaN 7 \n",
"1322 NaN NaN NaN NaN 13 \n",
"1323 NaN NaN NaN NaN 15 \n",
"1324 NaN NaN NaN 1.0 13 \n",
"All 53.0 28.0 62.0 58.0 11126 \n",
"\n",
"[943 rows x 292 columns]"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.pivot_table(df[['order_id', 'counts', 'amounts', 'dishes_name']], index='order_id',\n",
" columns='dishes_name', margins=True, aggfunc=np.sum)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "e9a3ca67",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>dishes_name</th>\n",
" <th>38度剑南春</th>\n",
" <th>42度海之蓝</th>\n",
" <th>50度古井贡酒</th>\n",
" <th>52度泸州老窖</th>\n",
" <th>53度茅台</th>\n",
" <th>一品香酥藕</th>\n",
" <th>三丝鳝鱼</th>\n",
" <th>三色凉拌手撕兔</th>\n",
" <th>不加一滴油的酸奶蛋糕</th>\n",
" <th>五彩藕苗</th>\n",
" <th>...</th>\n",
" <th>香酥两吃大虾</th>\n",
" <th>鱼香肉丝拌面</th>\n",
" <th>鲜美鳝鱼</th>\n",
" <th>鸡蛋、肉末肠粉</th>\n",
" <th>麻辣小龙虾</th>\n",
" <th>黄尾袋鼠西拉子红葡萄酒</th>\n",
" <th>黄油曲奇饼干</th>\n",
" <th>黄花菜炒木耳</th>\n",
" <th>黑米恋上葡萄</th>\n",
" <th>All</th>\n",
" </tr>\n",
" <tr>\n",
" <th>order_id</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>137</th>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>162</th>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>163</th>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>165</th>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>21</td>\n",
" </tr>\n",
" <tr>\n",
" <th>166</th>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1321</th>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1322</th>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1323</th>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>15</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1324</th>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>All</th>\n",
" <td>24.0</td>\n",
" <td>25.0</td>\n",
" <td>21.0</td>\n",
" <td>22.0</td>\n",
" <td>39.0</td>\n",
" <td>51.0</td>\n",
" <td>10.0</td>\n",
" <td>22.0</td>\n",
" <td>38.0</td>\n",
" <td>41.0</td>\n",
" <td>...</td>\n",
" <td>179.0</td>\n",
" <td>40.0</td>\n",
" <td>22.0</td>\n",
" <td>14.0</td>\n",
" <td>219.0</td>\n",
" <td>53.0</td>\n",
" <td>28.0</td>\n",
" <td>62.0</td>\n",
" <td>58.0</td>\n",
" <td>11126</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>943 rows × 146 columns</p>\n",
"</div>"
],
"text/plain": [
"dishes_name 38度剑南春 42度海之蓝 50度古井贡酒 52度泸州老窖 53度茅台 一品香酥藕 三丝鳝鱼 三色凉拌手撕兔 \\\n",
"order_id \n",
"137 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"162 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 \n",
"163 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"165 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 \n",
"166 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"... ... ... ... ... ... ... ... ... \n",
"1321 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"1322 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"1323 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"1324 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"All 24.0 25.0 21.0 22.0 39.0 51.0 10.0 22.0 \n",
"\n",
"dishes_name 不加一滴油的酸奶蛋糕 五彩藕苗 ... 香酥两吃大虾 鱼香肉丝拌面 鲜美鳝鱼 鸡蛋、肉末肠粉 麻辣小龙虾 \\\n",
"order_id ... \n",
"137 0.0 0.0 ... 0.0 0.0 0.0 0.0 1.0 \n",
"162 0.0 0.0 ... 0.0 0.0 0.0 0.0 1.0 \n",
"163 0.0 0.0 ... 0.0 0.0 0.0 0.0 1.0 \n",
"165 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 \n",
"166 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 \n",
"... ... ... ... ... ... ... ... ... \n",
"1321 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 \n",
"1322 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 \n",
"1323 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 \n",
"1324 1.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 \n",
"All 38.0 41.0 ... 179.0 40.0 22.0 14.0 219.0 \n",
"\n",
"dishes_name 黄尾袋鼠西拉子红葡萄酒 黄油曲奇饼干 黄花菜炒木耳 黑米恋上葡萄 All \n",
"order_id \n",
"137 0.0 0.0 0.0 0.0 9 \n",
"162 0.0 2.0 0.0 0.0 18 \n",
"163 0.0 0.0 0.0 0.0 10 \n",
"165 0.0 0.0 1.0 0.0 21 \n",
"166 0.0 0.0 0.0 0.0 7 \n",
"... ... ... ... ... ... \n",
"1321 0.0 0.0 0.0 0.0 7 \n",
"1322 0.0 0.0 0.0 0.0 13 \n",
"1323 0.0 0.0 0.0 0.0 15 \n",
"1324 0.0 0.0 0.0 1.0 13 \n",
"All 53.0 28.0 62.0 58.0 11126 \n",
"\n",
"[943 rows x 146 columns]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.crosstab(index=df['order_id'], columns=df['dishes_name'], values=df['counts'], dropna=True,\n",
" margins=True, aggfunc=np.sum).fillna(0)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b4036fc1",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}