欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Pandas 數(shù)據(jù)處理,數(shù)據(jù)清洗詳解

 更新時間:2018年07月10日 10:05:34   作者:kevinelstri  
今天小編就為大家分享一篇Pandas 數(shù)據(jù)處理,數(shù)據(jù)清洗詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

如下所示:

# -*-coding:utf-8-*-

from pandas import DataFrame
import pandas as pd
import numpy as np

"""
 獲取行列數(shù)據(jù)
"""
df = DataFrame(np.random.rand(4, 5), columns=['A', 'B', 'C', 'D', 'E'])
print df
print

df['col_sum'] = df.apply(lambda x: x.sum(), axis=1) # 橫向求和,axis=1表示橫向
df.loc['row_sum'] = df.apply(lambda x: x.sum()) # loc獲取一整列的數(shù)據(jù),對一列數(shù)據(jù)進行求和

print df
print

dd = pd.DataFrame(np.arange(0, 60, 2).reshape(10, 3), columns=list('abc'))

# loc獲取一整列的數(shù)據(jù)
print dd
print
print dd.loc[0:len(dd), 'a']
print
print dd.loc[0:3, ['a', 'b']]
print
print dd.loc[[1, 5], ['b', 'c']]
print '--------------------------------------'

# iloc獲取某個位置的元素,或者某個區(qū)域的元素
print dd.iloc[1, 1]
print dd.iloc[0:3, [0, 1]]
print dd.iloc[[0, 3, 5], 0:2]
print '--------------------------------------'

"""
 去重函數(shù) drop_duplicates()
"""
from pandas import Series, DataFrame

data = DataFrame({'k': [1, 1, 2, 2]})
print data
print type(data) # <class 'pandas.core.frame.DataFrame'>
print

isduplicates = data.duplicated() # duplicated()判斷是否是重復的項
print isduplicates
print type(isduplicates) # <class 'pandas.core.series.Series'>
print

data = data.drop_duplicates() # drop_duplicates()移除重復的項
print data
print type(data) # <class 'pandas.core.frame.DataFrame'>
print '-------------------------------------------------'

"""
 Pandas.DataFrame 讀取、合并、修改列數(shù)據(jù)、新增列、分組、分組數(shù)據(jù)計算
"""
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
from datetime import timedelta, datetime
from dateutil.parser import parse

"""
 讀寫csv文件
"""
# 讀取csv文件
df = pd.read_csv('data_english.csv', encoding='gbk')
# print df
print type(df) # <class 'pandas.core.frame.DataFrame'>
print df.columns # 所有列的標簽
print df.index # 所有行的標簽
print df.book_id # 選擇某一列,可以使用df.book_id ,也可以使用df['book_id']
print type(df.book_id) # <class 'pandas.core.series.Series'>
print np.array(df.book_id) # 將Series轉換為numpy的darray格式
print '---------------------------------------------------------'

# 寫入csv文件
# df.to_csv('dat.csv', index=False, encoding='gbk') # index=False表示不把index寫入文件

"""
 行列的選取
"""
print df.read_name # 選擇一列
print df[:3] # 選擇前3行
print df.loc[:, ('read_num', 'read_name')] # df.loc[行標簽,列標簽]
print df.iloc[2, 4] # df.iloc[行位置,列位置]
print df.ix[2, 4] # df.ix[行位置或行標簽,列位置或列標簽]

# bool判斷
print df[df.read_name == u'山問萍'].head() # 獲取符合條件的行列
print df[(df.read_name == u'山問萍') & (df.book == u'植物生理學實驗教程')] # 多個條件
print '----------------------------------------------'

"""
 兩個df相merge
"""
# pd.concat([df1, df2]) # 兩個df的column都一樣,index不重復(增加列)
# pd.concat([df1, df2], axis=1) # 兩個df的index都一樣,column不重復(增加行)

"""
 增加列,刪除列,重命名某一列
"""
# df['new_col'] = xxx # 直接增加一列,加到最后一列
# df.insert[1, 'new_col'] # 使用df.insert 插入一列,可以設置這一列的位置
# del df['one_col'] # 直接使用del進行刪除,刪除某一列
# df = df.rename(columns={'old_name': 'new_name'}) # 重命名某一列
# df = df.rename(columns={'old_name': 'new_name'}, inplace=True)
# print '--------------------------------------------------------'

"""
 apply(): 對dataframe的內容進行批量處理,比循環(huán)更快
 map(),
 agg():對分組的結果再分別進行不同的操作
"""

"""
 數(shù)據(jù)合并
"""
import numpy as np
import pandas as pd

data1 = pd.DataFrame({'level': ['a', 'b', 'c', 'd'], 'number': [1, 3, 5, 7]})
data2 = pd.DataFrame({'level': ['a', 'b', 'c', 'e'], 'number': [2, 3, 4, 5]})
print data1
print data2
print pd.merge(data1, data2, on='level') # 合并,內連接

data3 = pd.DataFrame({'level1': ['a', 'b', 'c', 'd'], 'number': [1, 3, 5, 7]})
data4 = pd.DataFrame({'level2': ['a', 'b', 'c', 'e'], 'number': [2, 3, 4, 5]})
print pd.merge(data3, data4, left_on='level1', right_on='level2')
print pd.merge(data3, data4, left_on='level1', right_on='level2', how='left')
print '----------------------------------------'
"""
 merge參數(shù)說明:
  left和right:兩個不同的DataFrame
  how:合并的方式-->inner內連接,right右連接,left左連接,outer外連接,默認為inner
  on:用于連接的列索引名稱,必須存在于兩個DataFrame對象中
  left_on:
  right_on:
  left_index:
  right_index:
  sort:默認為True,將合并的數(shù)據(jù)進行排序
  suffixes:當列名相同時,合并后,自動添加后綴名稱,默認為(_x, _y)
  copy:默認為True,復制數(shù)據(jù)結構
  indicator:
"""

"""
 重疊數(shù)據(jù)合并
"""
data3 = pd.DataFrame({'level': ['a', 'b', 'c', 'd'], 'number1': [1, 3, 5, np.nan]})
data4 = pd.DataFrame({'level': ['a', 'b', 'c', 'e'], 'number2': [2, np.nan, 4, 5]})
print data3.combine_first(data4) # 相同標簽下的內容優(yōu)先顯示data3的內容,如果某個數(shù)據(jù)缺失,就用另外一個數(shù)據(jù)補上

"""
 數(shù)據(jù)重塑和軸向旋轉
 數(shù)據(jù)重塑:reshape()
 軸向旋轉:unstack(),stack()
"""
data = pd.DataFrame(np.arange(12).reshape(3, 4), columns=['a', 'b', 'c', 'd'], index=['wang', 'li', 'zhang'])
print data
print data.unstack() # 軸向旋轉
print '---------------------------------'

"""
 數(shù)據(jù)轉換
"""
data = pd.DataFrame({'a': [1, 3, 3, 4], 'b': [1, 3, 3, 5]})
print data
print data.duplicated() # 判斷是否重復行
print data.drop_duplicates() # 去除重復行

"""
 替換值
"""
data = pd.DataFrame({'a': [1, 3, 3, 4], 'b': [1, 3, 3, 5]})
print data.replace(1, 2) # 凡是數(shù)據(jù)1,全部替換成數(shù)據(jù)2
print data.replace([1, 4], np.nan) # 凡是數(shù)據(jù)1,4,全部替換成np.nan

"""
 數(shù)據(jù)分段
"""
data = [11, 15, 18, 20, 25, 26, 27, 24]
bins = [15, 20, 25]
print data
print pd.cut(data, bins)

以上這篇Pandas 數(shù)據(jù)處理,數(shù)據(jù)清洗詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Python 實現(xiàn)將數(shù)組/矩陣轉換成Image類

    Python 實現(xiàn)將數(shù)組/矩陣轉換成Image類

    今天小編就為大家分享一篇Python 實現(xiàn)將數(shù)組/矩陣轉換成Image類,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python制作一個桌面便簽軟件

    python制作一個桌面便簽軟件

    這篇文章主要介紹了python制作一個桌面便簽軟件分別給大家附上ubuntu和windows版的程序及源碼,有需要的小伙伴可以參考下。
    2015-08-08
  • python中的代碼運行時間獲取方式

    python中的代碼運行時間獲取方式

    這篇文章主要介紹了python中的代碼運行時間獲取方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • python性能測試手機號驗證碼登錄壓測示例詳解

    python性能測試手機號驗證碼登錄壓測示例詳解

    這篇文章主要為大家介紹了python性能測試手機號驗證碼登錄壓測的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • python用pandas讀寫和追加csv文件

    python用pandas讀寫和追加csv文件

    大家好,本篇文章主要講的是python用pandas讀寫和追加csv文件,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • Python 存儲字符串時節(jié)省空間的方法

    Python 存儲字符串時節(jié)省空間的方法

    這篇文章主要介紹了Python 存儲字符串時節(jié)省空間的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • Python考拉茲猜想輸出序列代碼實踐

    Python考拉茲猜想輸出序列代碼實踐

    這篇文章主要介紹了Python考拉茲猜想輸出序列代碼實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • 關于反爬蟲的一些簡單總結

    關于反爬蟲的一些簡單總結

    這篇文章主要介紹了關于反爬蟲的一些簡單總結,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • 詳解python連接telnet和ssh的兩種方式

    詳解python連接telnet和ssh的兩種方式

    本文主要介紹了python連接telnet和ssh的兩種方式,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 淺談python內置函數(shù)callable的用法

    淺談python內置函數(shù)callable的用法

    這篇文章主要介紹了淺談python內置函數(shù)callable的用法, callable函數(shù)可用于判斷一個對象是否可以被調用,若對象可以被調用則返回True,反之則返回False,需要的朋友可以參考下
    2023-04-04

最新評論