數(shù)據(jù)分析-padas-基本操作

一、 創(chuàng)建數(shù)據(jù)

import pandas as pd
import numpy as np

# 一、 創(chuàng)建數(shù)據(jù)
ipl_data = {'國家': ['中國', '美國', '韓國', '韓國', '日本','日本', '中國', '中國'],
         '職業(yè)': ['老師', '商人', '運(yùn)動(dòng)員', '運(yùn)動(dòng)員', '醫(yī)生', '老師','律師','客服'],
         '年齡': [28, 27, 29, 30, 27, 35,28 ,28],
         '體重': [54, 60, 70, 65, 55, 50, 52, 47],
         '身高': [165, 170, 168, 168, 180, 175, 172, 160],
         '性別':['男', '男', '女', '男', '女', '男', '男', '女']}
df = pd.DataFrame(ipl_data)
print(df)
   體重  國家  年齡 性別   職業(yè)   身高
0  54  中國  28  男   老師  165
1  60  美國  27  男   商人  170
2  70  韓國  29  女  運(yùn)動(dòng)員  168
3  65  韓國  30  男  運(yùn)動(dòng)員  168
4  55  日本  27  女   醫(yī)生  180
5  50  日本  35  男   老師  175
6  52  中國  28  男   律師  172
7  47  中國  28  女   客服  160

二徙邻、讀取數(shù)據(jù)

filepath = 'dataset.csv'
df = pd.read_csv(filepath)
# pd.read_excel(filepath
# pd.read_json(filepath)

三、保存數(shù)據(jù)

filepath = 'dataset.csv'
df.to_csv(filepath)
# df.to_excel(filepath)

四畸裳、查看數(shù)據(jù)

1. 查看頭部數(shù)據(jù)
print(df.head(3))  # 查看頭3行數(shù)據(jù)
print(df.tail(3)) # 查看后3行數(shù)據(jù)
   體重  國家  年齡 性別   職業(yè)   身高
0  54  中國  28  男   老師  165
1  60  美國  27  男   商人  170
2  70  韓國  29  女  運(yùn)動(dòng)員  168

   體重  國家  年齡 性別  職業(yè)   身高
5  50  日本  35  男  老師  175
6  52  中國  28  男  律師  172
2. 格式查看
print(df.info())
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 8 entries, 0 to 7
Data columns (total 6 columns):
體重    8 non-null int64
國家    8 non-null object
年齡    8 non-null int64
性別    8 non-null object
職業(yè)    8 non-null object
身高    8 non-null int64
dtypes: int64(3), object(3)
memory usage: 464.0+ bytes
None
3. 查看統(tǒng)計(jì)信息(這個(gè)操作只針對數(shù)值型的列)
print(df.describe())
              體重         年齡          身高
count   8.000000   8.000000    8.000000
mean   56.625000  29.000000  169.750000
std     7.818248   2.618615    6.112049
min    47.000000  27.000000  160.000000
25%    51.500000  27.750000  167.250000
50%    54.500000  28.000000  169.000000
75%    61.250000  29.250000  172.750000
max    70.000000  35.000000  180.000000

五缰犁、基本處理

1. 增
df['愛好'] = ['運(yùn)動(dòng)', '看書', '旅行', '旅行', '拍照', '唱歌', '畫畫', '唱歌']
print(df)
   體重  國家  年齡 性別   職業(yè)   身高  愛好
0  54  中國  28  男   老師  165  運(yùn)動(dòng)
1  60  美國  27  男   商人  170  看書
2  70  韓國  29  女  運(yùn)動(dòng)員  168  旅行
3  65  韓國  30  男  運(yùn)動(dòng)員  168  旅行
4  55  日本  27  女   醫(yī)生  180  拍照
5  50  日本  35  男   老師  175  唱歌
6  52  中國  28  男   律師  172  畫畫
7  47  中國  28  女   客服  160  唱歌
2. 刪
df.drop(['身高', '體重'], axis=1, inplace=True)
print(df)
   國家  年齡 性別   職業(yè)
0  中國  28  男   老師
1  美國  27  男   商人
2  韓國  29  女  運(yùn)動(dòng)員
3  韓國  30  男  運(yùn)動(dòng)員
4  日本  27  女   醫(yī)生
5  日本  35  男   老師
6  中國  28  男   律師
7  中國  28  女   客服
3. 選
df1 = df[['國家', '年齡']]
print(df1)
   國家  年齡
0  中國  28
1  美國  27
2  韓國  29
3  韓國  30
4  日本  27
5  日本  35
6  中國  28
7  中國  28
4. 改
# ACCESSOR,可以將它理解為一種屬性接口,通過它可以獲得額外的方法
print(pd.Series._accessors)
print([i for i in dir(pd.Series.str) if not i.startswith('_')])
df['國家'].str.replace('美', '英')
print(df)
{'str', 'cat', 'dt'}
['capitalize', 'cat', 'center', 'contains', 'count', 'decode', 'encode', 'endswith', 'extract', 'extractall', 'find', 'findall', 'get', 'get_dummies', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'islower', 'isnumeric', 'isspace', 'istitle', 'isupper', 'join', 'len', 'ljust', 'lower', 'lstrip', 'match', 'normalize', 'pad', 'partition', 'repeat', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'slice', 'slice_replace', 'split', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'wrap', 'zfill']
   體重  國家  年齡 性別   職業(yè)   身高
0  54  中國  28  男   老師  165
1  60  英國  27  男   商人  170
2  70  韓國  29  女  運(yùn)動(dòng)員  168
3  65  韓國  30  男  運(yùn)動(dòng)員  168
4  55  日本  27  女   醫(yī)生  180
5  50  日本  35  男   老師  175
6  52  中國  28  男   律師  172
7  47  中國  28  女   客服  160
5. 單(多)列運(yùn)算
df['年齡'] = df['年齡'] + 10
df['年齡乘體重'] = df['年齡'] * df['體重']
df['年齡乘以2'] = df['年齡'].map(lambda x: x*2)
df['col3'] = df.apply(lambda x: x['col1'] + 2 * x['col2'], axis=1) 
print(df)
   體重  國家  年齡 性別   職業(yè)   身高  年齡乘體重
0  54  中國  38  男   老師  165   2052
1  60  美國  37  男   商人  170   2220
2  70  韓國  39  女  運(yùn)動(dòng)員  168   2730
3  65  韓國  40  男  運(yùn)動(dòng)員  168   2600
4  55  日本  37  女   醫(yī)生  180   2035
5  50  日本  45  男   老師  175   2250
6  52  中國  38  男   律師  172   1976
7  47  中國  38  女   客服  160   1786

六怖糊、重復(fù)數(shù)據(jù)

6.2 判斷某列是否重復(fù)
flag = df['國家'].duplicated()
df['is_repeat'] = flag
print(df[['國家', 'is_repeat']])
   國家  is_repeat
0  中國      False
1  美國      False
2  韓國      False
3  韓國       True
4  日本      False
5  日本       True
6  中國       True
7  中國       True
6.3 判斷dataframe數(shù)據(jù)整行是否重復(fù)
flag = df.duplicated()
df['is_repeat'] = flag
print(df)
   體重  國家  年齡 性別   職業(yè)   身高  is_repeat
0  54  中國  28  男   老師  165      False
1  60  美國  27  男   商人  170      False
2  70  韓國  29  女  運(yùn)動(dòng)員  168      False
3  65  韓國  30  男  運(yùn)動(dòng)員  168      False
4  55  日本  27  女   醫(yī)生  180      False
5  50  日本  35  男   老師  175      False
6  52  中國  28  男   律師  172      False
7  47  中國  28  女   客服  160      False
6.4 判斷dataframe數(shù)據(jù)多列數(shù)據(jù)是否重復(fù)(多列組合查)
flag = df.duplicated(subset = ['國家', '性別'])
df['is_repeat'] = flag
print(df)
   體重  國家  年齡 性別   職業(yè)   身高  is_repeat
0  54  中國  28  男   老師  165      False
1  60  美國  27  男   商人  170      False
2  70  韓國  29  女  運(yùn)動(dòng)員  168      False
3  65  韓國  30  男  運(yùn)動(dòng)員  168      False
4  55  日本  27  女   醫(yī)生  180      False
5  50  日本  35  男   老師  175      False
6  52  中國  28  男   律師  172       True
7  47  中國  28  女   客服  160      False
6.5 去重
# DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)

df.drop_duplicates(subset = ['國家', '性別'], keep='last', inplace=True)
print(df)
# drop_duplicats參數(shù)說明:
#   參數(shù)subset
#     subset用來指定特定的列帅容,默認(rèn)所有列
#   參數(shù)keep
#     keep可以為first和last,表示是選擇最前一項(xiàng)還是最后一項(xiàng)保留伍伤,默認(rèn)first
#   參數(shù)inplace
#     inplace是直接在原來數(shù)據(jù)上修改還是保留一個(gè)副本并徘,默認(rèn)為False

根據(jù)['國家', '性別']進(jìn)行去重,行索引為0的數(shù)據(jù)被刪除了扰魂,保留了行索引為7的數(shù)據(jù)

   體重  國家  年齡 性別   職業(yè)   身高
1  60  美國  27  男   商人  170
2  70  韓國  29  女  運(yùn)動(dòng)員  168
3  65  韓國  30  男  運(yùn)動(dòng)員  168
4  55  日本  27  女   醫(yī)生  180
5  50  日本  35  男   老師  175
6  52  中國  28  男   律師  172
7  47  中國  28  女   客服  160
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末麦乞,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子劝评,更是在濱河造成了極大的恐慌姐直,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蒋畜,死亡現(xiàn)場離奇詭異声畏,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)姻成,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門插龄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人科展,你說我怎么就攤上這事均牢。” “怎么了辛润?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵膨处,是天一觀的道長见秤。 經(jīng)常有香客問我砂竖,道長,這世上最難降的妖魔是什么鹃答? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任乎澄,我火速辦了婚禮,結(jié)果婚禮上测摔,老公的妹妹穿的比我還像新娘置济。我一直安慰自己解恰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布浙于。 她就那樣靜靜地躺著护盈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪羞酗。 梳的紋絲不亂的頭發(fā)上腐宋,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天,我揣著相機(jī)與錄音檀轨,去河邊找鬼胸竞。 笑死,一個(gè)胖子當(dāng)著我的面吹牛参萄,可吹牛的內(nèi)容都是我干的卫枝。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼讹挎,長吁一口氣:“原來是場噩夢啊……” “哼校赤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起筒溃,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤痒谴,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后铡羡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體积蔚,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年烦周,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了尽爆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,926評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡读慎,死狀恐怖漱贱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情夭委,我是刑警寧澤幅狮,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站株灸,受9級(jí)特大地震影響崇摄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜慌烧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一逐抑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧屹蚊,春花似錦厕氨、人聲如沸进每。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽田晚。三九已至,卻和暖如春国葬,著一層夾襖步出監(jiān)牢的瞬間肉瓦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工胃惜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留泞莉,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓船殉,卻偏偏與公主長得像鲫趁,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子利虫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評論 2 354