Advertisement
Guest User

Untitled

a guest
Aug 24th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.49 KB | None | 0 0
  1. {
  2. "cells": [
  3. {
  4. "cell_type": "markdown",
  5. "metadata": {},
  6. "source": [
  7. "위의 titanic 데이터 프레임에서 \"Sex\"와 \"Pclass\"(객실등급)를 index와 columns으로 삼아 pivot을 해보도록 하자. <br>\n",
  8. "우선, 기존의 데이터프레임 중 두 개의 컬럼 \"Sex\"와 \"Pclass\"으로 구성된 새로운 데이터프레임을 만들어보자."
  9. ]
  10. },
  11. {
  12. "cell_type": "code",
  13. "execution_count": 3,
  14. "metadata": {},
  15. "outputs": [
  16. {
  17. "data": {
  18. "text/html": [
  19. "<div>\n",
  20. "<style scoped>\n",
  21. " .dataframe tbody tr th:only-of-type {\n",
  22. " vertical-align: middle;\n",
  23. " }\n",
  24. "\n",
  25. " .dataframe tbody tr th {\n",
  26. " vertical-align: top;\n",
  27. " }\n",
  28. "\n",
  29. " .dataframe thead th {\n",
  30. " text-align: right;\n",
  31. " }\n",
  32. "</style>\n",
  33. "<table border=\"1\" class=\"dataframe\">\n",
  34. " <thead>\n",
  35. " <tr style=\"text-align: right;\">\n",
  36. " <th></th>\n",
  37. " <th>Pclass</th>\n",
  38. " <th>Sex</th>\n",
  39. " </tr>\n",
  40. " </thead>\n",
  41. " <tbody>\n",
  42. " <tr>\n",
  43. " <th>886</th>\n",
  44. " <td>2</td>\n",
  45. " <td>male</td>\n",
  46. " </tr>\n",
  47. " <tr>\n",
  48. " <th>887</th>\n",
  49. " <td>1</td>\n",
  50. " <td>female</td>\n",
  51. " </tr>\n",
  52. " <tr>\n",
  53. " <th>888</th>\n",
  54. " <td>3</td>\n",
  55. " <td>female</td>\n",
  56. " </tr>\n",
  57. " <tr>\n",
  58. " <th>889</th>\n",
  59. " <td>1</td>\n",
  60. " <td>male</td>\n",
  61. " </tr>\n",
  62. " <tr>\n",
  63. " <th>890</th>\n",
  64. " <td>3</td>\n",
  65. " <td>male</td>\n",
  66. " </tr>\n",
  67. " </tbody>\n",
  68. "</table>\n",
  69. "</div>"
  70. ],
  71. "text/plain": [
  72. " Pclass Sex\n",
  73. "886 2 male\n",
  74. "887 1 female\n",
  75. "888 3 female\n",
  76. "889 1 male\n",
  77. "890 3 male"
  78. ]
  79. },
  80. "execution_count": 3,
  81. "metadata": {},
  82. "output_type": "execute_result"
  83. }
  84. ],
  85. "source": [
  86. "titanic_f1 = pd.DataFrame(titanic, columns=[\"Sex\", \"Pclass\"])\n",
  87. "titanic_f1.tail()"
  88. ]
  89. },
  90. {
  91. "cell_type": "markdown",
  92. "metadata": {},
  93. "source": [
  94. "titanic_f1 데이터프레임에는 특정 \"Pclass\" & 특정 \"Sex\" 조합에 해당하는 데이터가 여러 번 나타날 것이므로, pivot을 하기 전에 먼저 groupby를 해주어야 한다. \"Sex\"와 \"Pclass\"로 groupby를 해서 데이터의 수를 \"Counts\" 칼럼으로 만들어주자."
  95. ]
  96. },
  97. {
  98. "cell_type": "code",
  99. "execution_count": 6,
  100. "metadata": {},
  101. "outputs": [
  102. {
  103. "data": {
  104. "text/html": [
  105. "<div>\n",
  106. "<style scoped>\n",
  107. " .dataframe tbody tr th:only-of-type {\n",
  108. " vertical-align: middle;\n",
  109. " }\n",
  110. "\n",
  111. " .dataframe tbody tr th {\n",
  112. " vertical-align: top;\n",
  113. " }\n",
  114. "\n",
  115. " .dataframe thead th {\n",
  116. " text-align: right;\n",
  117. " }\n",
  118. "</style>\n",
  119. "<table border=\"1\" class=\"dataframe\">\n",
  120. " <thead>\n",
  121. " <tr style=\"text-align: right;\">\n",
  122. " <th></th>\n",
  123. " <th>Sex</th>\n",
  124. " <th>Pclass</th>\n",
  125. " <th>Counts</th>\n",
  126. " </tr>\n",
  127. " </thead>\n",
  128. " <tbody>\n",
  129. " <tr>\n",
  130. " <th>0</th>\n",
  131. " <td>female</td>\n",
  132. " <td>1</td>\n",
  133. " <td>94</td>\n",
  134. " </tr>\n",
  135. " <tr>\n",
  136. " <th>1</th>\n",
  137. " <td>female</td>\n",
  138. " <td>2</td>\n",
  139. " <td>76</td>\n",
  140. " </tr>\n",
  141. " <tr>\n",
  142. " <th>2</th>\n",
  143. " <td>female</td>\n",
  144. " <td>3</td>\n",
  145. " <td>144</td>\n",
  146. " </tr>\n",
  147. " <tr>\n",
  148. " <th>3</th>\n",
  149. " <td>male</td>\n",
  150. " <td>1</td>\n",
  151. " <td>122</td>\n",
  152. " </tr>\n",
  153. " <tr>\n",
  154. " <th>4</th>\n",
  155. " <td>male</td>\n",
  156. " <td>2</td>\n",
  157. " <td>108</td>\n",
  158. " </tr>\n",
  159. " <tr>\n",
  160. " <th>5</th>\n",
  161. " <td>male</td>\n",
  162. " <td>3</td>\n",
  163. " <td>347</td>\n",
  164. " </tr>\n",
  165. " </tbody>\n",
  166. "</table>\n",
  167. "</div>"
  168. ],
  169. "text/plain": [
  170. " Sex Pclass Counts\n",
  171. "0 female 1 94\n",
  172. "1 female 2 76\n",
  173. "2 female 3 144\n",
  174. "3 male 1 122\n",
  175. "4 male 2 108\n",
  176. "5 male 3 347"
  177. ]
  178. },
  179. "execution_count": 6,
  180. "metadata": {},
  181. "output_type": "execute_result"
  182. }
  183. ],
  184. "source": [
  185. "titanic_f1 = titanic.groupby([\"Sex\",\"Pclass\"]).size().reset_index(name=\"Counts\")\n",
  186. "titanic_f1"
  187. ]
  188. },
  189. {
  190. "cell_type": "markdown",
  191. "metadata": {},
  192. "source": [
  193. "이제 pivot 메서드를 통해 \"Sex\"를 index로, \"Pclass\"를 columns로 하고 \"Counts\"가 values인 새로운 데이터프레임을 만들 수 있다."
  194. ]
  195. },
  196. {
  197. "cell_type": "code",
  198. "execution_count": 7,
  199. "metadata": {},
  200. "outputs": [
  201. {
  202. "data": {
  203. "text/html": [
  204. "<div>\n",
  205. "<style scoped>\n",
  206. " .dataframe tbody tr th:only-of-type {\n",
  207. " vertical-align: middle;\n",
  208. " }\n",
  209. "\n",
  210. " .dataframe tbody tr th {\n",
  211. " vertical-align: top;\n",
  212. " }\n",
  213. "\n",
  214. " .dataframe thead th {\n",
  215. " text-align: right;\n",
  216. " }\n",
  217. "</style>\n",
  218. "<table border=\"1\" class=\"dataframe\">\n",
  219. " <thead>\n",
  220. " <tr style=\"text-align: right;\">\n",
  221. " <th>Pclass</th>\n",
  222. " <th>1</th>\n",
  223. " <th>2</th>\n",
  224. " <th>3</th>\n",
  225. " </tr>\n",
  226. " <tr>\n",
  227. " <th>Sex</th>\n",
  228. " <th></th>\n",
  229. " <th></th>\n",
  230. " <th></th>\n",
  231. " </tr>\n",
  232. " </thead>\n",
  233. " <tbody>\n",
  234. " <tr>\n",
  235. " <th>female</th>\n",
  236. " <td>94</td>\n",
  237. " <td>76</td>\n",
  238. " <td>144</td>\n",
  239. " </tr>\n",
  240. " <tr>\n",
  241. " <th>male</th>\n",
  242. " <td>122</td>\n",
  243. " <td>108</td>\n",
  244. " <td>347</td>\n",
  245. " </tr>\n",
  246. " </tbody>\n",
  247. "</table>\n",
  248. "</div>"
  249. ],
  250. "text/plain": [
  251. "Pclass 1 2 3\n",
  252. "Sex \n",
  253. "female 94 76 144\n",
  254. "male 122 108 347"
  255. ]
  256. },
  257. "execution_count": 7,
  258. "metadata": {},
  259. "output_type": "execute_result"
  260. }
  261. ],
  262. "source": [
  263. "titanic_f1.pivot(\"Sex\",\"Pclass\",\"Counts\")"
  264. ]
  265. }
  266. ],
  267. "metadata": {
  268. "kernelspec": {
  269. "display_name": "Python 3",
  270. "language": "python",
  271. "name": "python3"
  272. },
  273. "language_info": {
  274. "codemirror_mode": {
  275. "name": "ipython",
  276. "version": 3
  277. },
  278. "file_extension": ".py",
  279. "mimetype": "text/x-python",
  280. "name": "python",
  281. "nbconvert_exporter": "python",
  282. "pygments_lexer": "ipython3",
  283. "version": "3.6.5"
  284. }
  285. },
  286. "nbformat": 4,
  287. "nbformat_minor": 2
  288. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement