最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

pandas讀取CSV文件時查看修改各列的數(shù)據(jù)類型格式

 更新時間:2019年07月07日 11:53:00   作者:真不會修電腦  
這篇文章主要介紹了pandas讀取CSV文件時查看修改各列的數(shù)據(jù)類型格式,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下

下面給大家介紹下pandas讀取CSV文件時查看修改各列的數(shù)據(jù)類型格式,具體內(nèi)容如下所述:

我們在調(diào)bug的時候會經(jīng)常查看、修改pandas列數(shù)據(jù)的數(shù)據(jù)類型,今天就總結(jié)一下:

1.查看:

   Numpy和Pandas的查看方式略有不同,一個是dtype,一個是dtypes

print(Array.dtype)
#輸出int64
print(df.dtypes)
#輸出Df下所有列的數(shù)據(jù)格式 a:int64,b:int64

2.修改

import pandas as pd
import numpy as np
df = pd.read_csv('000917.csv',encoding='gbk')
df = df[df['漲跌幅']!='None']
df['漲跌幅'] = df['漲跌幅'].astype(np.float64)

print(df[df['漲跌幅']>5])

ps:在Pandas中更改列的數(shù)據(jù)類型

先看一個非常簡單的例子:

a = [['a', '1.2', '4.2'], ['b', '70', '0.03'], ['x', '5', '0']]
df = pd.DataFrame(a)

有什么方法可以將列轉(zhuǎn)換為適當(dāng)?shù)念愋停坷?,上面的例子,如何將?和3轉(zhuǎn)為浮點數(shù)?有沒有辦法將數(shù)據(jù)轉(zhuǎn)換為DataFrame格式時指定類型?或者是創(chuàng)建DataFrame,然后通過某種方法更改每列的類型?理想情況下,希望以動態(tài)的方式做到這一點,因為可以有數(shù)百個列,明確指定哪些列是哪種類型太麻煩。可以假定每列都包含相同類型的值。

解決方法

可以用的方法簡單列舉如下:

對于創(chuàng)建DataFrame的情形

如果要創(chuàng)建一個DataFrame,可以直接通過dtype參數(shù)指定類型:

df = pd.DataFrame(a, dtype='float') #示例1
df = pd.DataFrame(data=d, dtype=np.int8) #示例2
df = pd.read_csv("somefile.csv", dtype = {'column_name' : str})

對于單列或者Series

下面是一個字符串Seriess的例子,它的dtype為object:

>>> s = pd.Series(['1', '2', '4.7', 'pandas', '10'])
>>> s
0     1
1     2
2    4.7
3  pandas
4    10
dtype: object

使用to_numeric轉(zhuǎn)為數(shù)值。默認(rèn)情況下,它不能處理字母型的字符串'pandas':

>>> pd.to_numeric(s) # or pd.to_numeric(s, errors='raise')
ValueError: Unable to parse string

可以將無效值強(qiáng)制轉(zhuǎn)換為NaN,如下所示:

>>> pd.to_numeric(s, errors='coerce')
0   1.0
1   2.0
2   4.7
3   NaN
4  10.0
dtype: float64

如果遇到無效值,第三個選項就是忽略該操作:

>>> pd.to_numeric(s, errors='ignore')
# the original Series is returned untouched

對于多列或者整個DataFrame
如果想要將這個操作應(yīng)用到多個列,依次處理每一列是非常繁瑣的,所以可以使用DataFrame.apply處理每一列。

對于某個DataFrame:

>>> a = [['a', '1.2', '4.2'], ['b', '70', '0.03'], ['x', '5', '0']]
>>> df = pd.DataFrame(a, columns=['col1','col2','col3'])
>>> df
 col1 col2 col3
0  a 1.2  4.2
1  b  70 0.03
2  x  5   0

然后可以寫:

df[['col2','col3']] = df[['col2','col3']].apply(pd.to_numeric)

那么'col2'和'col3'根據(jù)需要具有float64類型。

但是,可能不知道哪些列可以可靠地轉(zhuǎn)換為數(shù)字類型。在這種情況下,設(shè)置參數(shù):

df.apply(pd.to_numeric, errors='ignore')

然后該函數(shù)將被應(yīng)用于整個DataFrame,可以轉(zhuǎn)換為數(shù)字類型的列將被轉(zhuǎn)換,而不能(例如,它們包含非數(shù)字字符串或日期)的列將被單獨保留。

另外pd.to_datetime和pd.to_timedelta可將數(shù)據(jù)轉(zhuǎn)換為日期和時間戳。

軟轉(zhuǎn)換——類型自動推斷

版本0.21.0引入了infer_objects()方法,用于將具有對象數(shù)據(jù)類型的DataFrame的列轉(zhuǎn)換為更具體的類型。

例如,用兩列對象類型創(chuàng)建一個DataFrame,其中一個保存整數(shù),另一個保存整數(shù)的字符串:

>>> df = pd.DataFrame({'a': [7, 1, 5], 'b': ['3','2','1']}, dtype='object')
>>> df.dtypes
a  object
b  object
dtype: object

然后使用infer_objects(),可以將列'a'的類型更改為int64:

>>> df = df.infer_objects()
>>> df.dtypes
a   int64
b  object
dtype: object

由于'b'的值是字符串,而不是整數(shù),因此'b'一直保留。

astype強(qiáng)制轉(zhuǎn)換

如果試圖強(qiáng)制將兩列轉(zhuǎn)換為整數(shù)類型,可以使用df.astype(int)。

示例如下:

a = [['a', '1.2', '4.2'], ['b', '70', '0.03'], ['x', '5', '0']]
df = pd.DataFrame(a, columns=['one', 'two', 'three'])
df
Out[16]: 
 one two three
0  a 1.2  4.2
1  b  70 0.03
2  x  5   0
df.dtypes
Out[17]: 
one   object
two   object
three  object
df[['two', 'three']] = df[['two', 'three']].astype(float)
df.dtypes
Out[19]: 
one    object
two   float64
three  float64

總結(jié)

以上所述是小編給大家介紹的pandas讀取CSV文件時查看修改各列的數(shù)據(jù)類型格式,希望對大家有所幫助,如果有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!

相關(guān)文章

  • python 如何通過KNN來填充缺失值

    python 如何通過KNN來填充缺失值

    這篇文章主要介紹了python 通過KNN來填充缺失值的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • 對python函數(shù)簽名的方法詳解

    對python函數(shù)簽名的方法詳解

    今天小編就為大家分享一篇對python函數(shù)簽名的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • NumPy中使用省略號進(jìn)行切片的實現(xiàn)示例

    NumPy中使用省略號進(jìn)行切片的實現(xiàn)示例

    NumPy中的省略號(...)用于簡化多維數(shù)組的切片操作,本文主要介紹了NumPy中使用省略號進(jìn)行切片的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-01-01
  • 詳解python如何提取瀏覽器中保存的網(wǎng)站登錄用戶名密碼

    詳解python如何提取瀏覽器中保存的網(wǎng)站登錄用戶名密碼

    很多瀏覽器都貼心地提供了保存用戶密碼功能,用戶一旦開啟,就不需要每次都輸入用戶名、密碼,非常方便,作為python腳本,能否拿到用戶提前保存在瀏覽器中的用戶名密碼,用以自動登錄呢,下面我們就來看看吧
    2023-08-08
  • django有哪些好處和優(yōu)點

    django有哪些好處和優(yōu)點

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于django有哪些好處和優(yōu)點的相關(guān)內(nèi)容,有需要的朋友們可以參考下。
    2020-09-09
  • 詳解如何利用Python拍攝延時攝影

    詳解如何利用Python拍攝延時攝影

    隨著游戲引擎技術(shù)的快速發(fā)展,游戲畫面越來越精美,很多玩家希望拍攝這些精美游戲中的畫面。本文將講解如何利用Python實現(xiàn)延時攝影的拍攝,需要的可以參考一下
    2022-03-03
  • Python常用擴(kuò)展插件使用教程解析

    Python常用擴(kuò)展插件使用教程解析

    這篇文章主要介紹了Python常用擴(kuò)展插件使用教程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • python正則表達(dá)式標(biāo)準(zhǔn)庫之re庫的詳細(xì)介紹

    python正則表達(dá)式標(biāo)準(zhǔn)庫之re庫的詳細(xì)介紹

    Python的re庫是用于處理正則表達(dá)式的標(biāo)準(zhǔn)庫,正則表達(dá)式是一種強(qiáng)大而靈活的文本處理工具,能夠幫助你執(zhí)行復(fù)雜的字符串匹配和替換操作,這篇文章主要介紹了python正則表達(dá)式標(biāo)準(zhǔn)庫之re庫的詳細(xì)介紹,需要的朋友可以參考下
    2025-06-06
  • python使用ctypes庫調(diào)用DLL動態(tài)鏈接庫

    python使用ctypes庫調(diào)用DLL動態(tài)鏈接庫

    這篇文章主要介紹了python如何使用ctypes庫調(diào)用DLL動態(tài)鏈接庫,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-10-10
  • 淺析Python字符串索引、切片、格式化

    淺析Python字符串索引、切片、格式化

    除了數(shù)字,Python中最常見的數(shù)據(jù)類型就是字符串,無論那種編程語言,字符串無處不在。本文將為大家詳細(xì)介紹Python中字符串的使用方法,需要的朋友可以參考一下
    2021-12-12

最新評論

卢龙县| 景洪市| 社会| 双江| 察哈| 霸州市| 青田县| 剑川县| 英吉沙县| 寿阳县| 乡城县| 邵阳市| 偏关县| 永仁县| 黑龙江省| 时尚| 浦东新区| 万全县| 婺源县| 上思县| 方正县| 新建县| 阿城市| 乌审旗| 贺州市| 白河县| 郁南县| 宝山区| 抚远县| 武川县| 安宁市| 龙岩市| 莆田市| 应城市| 连江县| 玉屏| 兴化市| 葵青区| 河南省| 昭平县| 乐都县|