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

Pandas.DataFrame行和列的轉(zhuǎn)置的實(shí)現(xiàn)

 更新時(shí)間:2023年02月22日 09:24:26   作者:餃子大人  
本文主要介紹了Pandas.DataFrame行和列的轉(zhuǎn)置的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

如果要交換(轉(zhuǎn)置)pandas.DataFrame的行和列,使用T屬性或transpose()方法。

這兩種方法都不會(huì)保留原始對(duì)象不變,也不會(huì)返回交換了行和列(轉(zhuǎn)置)的新對(duì)象。請(qǐng)注意,根據(jù)每一列的數(shù)據(jù)類型dtype,將生成視圖而不是副本,并且更改原始對(duì)象和轉(zhuǎn)置對(duì)象之一的值將更改另一個(gè)視圖。

pandas.DataFrame.T

可以使用T屬性獲得轉(zhuǎn)置的pandas.DataFrame。

import pandas as pd

df = pd.DataFrame({'X': [0, 1, 2], 'Y': [3, 4, 5]}, index=['A', 'B', 'C'])
print(df)
# ? ?X ?Y
# A ?0 ?3
# B ?1 ?4
# C ?2 ?5

print(df.T)
# ? ?A ?B ?C
# X ?0 ?1 ?2
# Y ?3 ?4 ?5

pandas.DataFrame.transpose()

transpose()方法類似。

print(df.transpose())
#    A  B  C
# X  0  1  2
# Y  3  4  5

修改原始對(duì)象本身

沒有像inplace這樣的參數(shù)可以修改原始對(duì)象本身。如果不想創(chuàng)建新對(duì)象,只需將其分配給原始對(duì)象本身即可。

df = df.T
print(df)
#    A  B  C
# X  0  1  2
# Y  3  4  5

當(dāng)進(jìn)行類型轉(zhuǎn)換(廣播)時(shí)

為pandas.DataFrame中的每一列設(shè)置數(shù)據(jù)類型dtype。

如果所有列都具有相同的數(shù)據(jù)類型,則即使通過T或transpose()進(jìn)行轉(zhuǎn)置,該數(shù)據(jù)類型也將保持相同。

df = pd.DataFrame({'X': [0, 1, 2], 'Y': [3, 4, 5]}, index=['A', 'B', 'C'])
print(df)
# ? ?X ?Y
# A ?0 ?3
# B ?1 ?4
# C ?2 ?5

print(df.dtypes)
# X ? ?int64
# Y ? ?int64
# dtype: object

print(df.T)
# ? ?A ?B ?C
# X ?0 ?1 ?2
# Y ?3 ?4 ?5

print(df.T.dtypes)
# A ? ?int64
# B ? ?int64
# C ? ?int64
# dtype: object

如果每一列都有不同的數(shù)據(jù)類型,則執(zhí)行類型轉(zhuǎn)換(廣播)。例如,如果作為轉(zhuǎn)置的結(jié)果生成了其中混合了整數(shù)int和浮點(diǎn)數(shù)float的列,則該列的數(shù)據(jù)類型變?yōu)閒loat。

df_mix = pd.DataFrame({'col_int': [0, 1, 2], 'col_float': [0.1, 0.2, 0.3]}, index=['A', 'B', 'C'])
print(df_mix)
# ? ?col_int ?col_float
# A ? ? ? ?0 ? ? ? ?0.1
# B ? ? ? ?1 ? ? ? ?0.2
# C ? ? ? ?2 ? ? ? ?0.3

print(df_mix.dtypes)
# col_int ? ? ? ?int64
# col_float ? ?float64
# dtype: object

print(df_mix.T)
# ? ? ? ? ? ? ?A ? ?B ? ?C
# col_int ? ?0.0 ?1.0 ?2.0
# col_float ?0.1 ?0.2 ?0.3

print(df_mix.T.dtypes)
# A ? ?float64
# B ? ?float64
# C ? ?float64
# dtype: object

即使再次轉(zhuǎn)置它也無法還原。需要應(yīng)用astype()來轉(zhuǎn)換數(shù)據(jù)類型。

?
print(df_mix.T.T)
# ? ?col_int ?col_float
# A ? ? ?0.0 ? ? ? ?0.1
# B ? ? ?1.0 ? ? ? ?0.2
# C ? ? ?2.0 ? ? ? ?0.3

print(df_mix.T.T.dtypes)
# col_int ? ? ?float64
# col_float ? ?float64
# dtype: object

元素為字符串str的字符串是對(duì)象類型。

df_mix2 = pd.DataFrame({'col_int': [0, 1, 2], 'col_float': [0.1, 0.2, 0.3], 'col_str': ['a', 'b', 'c']},
? ? ? ? ? ? ? ? ? ? ? ?index=['A', 'B', 'C'])
print(df_mix2)
# ? ?col_int ?col_float col_str
# A ? ? ? ?0 ? ? ? ?0.1 ? ? ? a
# B ? ? ? ?1 ? ? ? ?0.2 ? ? ? b
# C ? ? ? ?2 ? ? ? ?0.3 ? ? ? c

print(df_mix2.dtypes)
# col_int ? ? ? ?int64
# col_float ? ?float64
# col_str ? ? ? object
# dtype: object

print(df_mix2.T)
# ? ? ? ? ? ? ?A ? ?B ? ?C
# col_int ? ? ?0 ? ?1 ? ?2
# col_float ?0.1 ?0.2 ?0.3
# col_str ? ? ?a ? ?b ? ?c

print(df_mix2.T.dtypes)
# A ? ?object
# B ? ?object
# C ? ?object
# dtype: object

print(df_mix2.T.T)
# ? col_int col_float col_str
# A ? ? ? 0 ? ? ? 0.1 ? ? ? a
# B ? ? ? 1 ? ? ? 0.2 ? ? ? b
# C ? ? ? 2 ? ? ? 0.3 ? ? ? c

print(df_mix2.T.T.dtypes)
# col_int ? ? ?object
# col_float ? ?object
# col_str ? ? ?object
# dtype: object

視圖和復(fù)制

如果所有列都具有相同的數(shù)據(jù)類型,則T或transpose()將返回視圖。

原始對(duì)象和視圖對(duì)象共享內(nèi)存,因此更改一個(gè)元素會(huì)更改另一個(gè)元素。

df = pd.DataFrame({'X': [0, 1, 2], 'Y': [3, 4, 5]}, index=['A', 'B', 'C'])
print(df)
# ? ?X ?Y
# A ?0 ?3
# B ?1 ?4
# C ?2 ?5

df_T = df.T
print(df_T)
# ? ?A ?B ?C
# X ?0 ?1 ?2
# Y ?3 ?4 ?5

df_transpose = df.transpose()
print(df_transpose)
# ? ?A ?B ?C
# X ?0 ?1 ?2
# Y ?3 ?4 ?5

df.at['A', 'X'] = 100
print(df)
# ? ? ?X ?Y
# A ?100 ?3
# B ? ?1 ?4
# C ? ?2 ?5

print(df_T)
# ? ? ?A ?B ?C
# X ?100 ?1 ?2
# Y ? ?3 ?4 ?5

print(df_transpose)
# ? ? ?A ?B ?C
# X ?100 ?1 ?2
# Y ? ?3 ?4 ?5

如果每一列的數(shù)據(jù)類型dtype不同,則T或transpose()將生成一個(gè)副本。轉(zhuǎn)置的對(duì)象保留一個(gè)新的存儲(chǔ)區(qū),因此,如果更改一個(gè)的值,則另一個(gè)將保持不變。

df_mix = pd.DataFrame({'col_int': [0, 1, 2], 'col_float': [0.1, 0.2, 0.3]}, index=['A', 'B', 'C'])
print(df_mix)
# ? ?col_int ?col_float
# A ? ? ? ?0 ? ? ? ?0.1
# B ? ? ? ?1 ? ? ? ?0.2
# C ? ? ? ?2 ? ? ? ?0.3

df_mix_T = df_mix.T
print(df_mix_T)
# ? ? ? ? ? ? ?A ? ?B ? ?C
# col_int ? ?0.0 ?1.0 ?2.0
# col_float ?0.1 ?0.2 ?0.3

df_mix_transpose = df_mix.transpose()
print(df_mix_transpose)
# ? ? ? ? ? ? ?A ? ?B ? ?C
# col_int ? ?0.0 ?1.0 ?2.0
# col_float ?0.1 ?0.2 ?0.3

df_mix.at['A', 'col_int'] = 100
print(df_mix)
# ? ?col_int ?col_float
# A ? ? ?100 ? ? ? ?0.1
# B ? ? ? ?1 ? ? ? ?0.2
# C ? ? ? ?2 ? ? ? ?0.3

print(df_mix_T)
# ? ? ? ? ? ? ?A ? ?B ? ?C
# col_int ? ?0.0 ?1.0 ?2.0
# col_float ?0.1 ?0.2 ?0.3

print(df_mix_transpose)
# ? ? ? ? ? ? ?A ? ?B ? ?C
# col_int ? ?0.0 ?1.0 ?2.0
# col_float ?0.1 ?0.2 ?0.3

如果僅在后續(xù)過程中使用轉(zhuǎn)置的轉(zhuǎn)置,則不必?fù)?dān)心。以顯式創(chuàng)建副本。在transpose()中,當(dāng)參數(shù)copy設(shè)置為True時(shí),將生成一個(gè)副本。

df = pd.DataFrame({'X': [0, 1, 2], 'Y': [3, 4, 5]}, index=['A', 'B', 'C'])
print(df)
# ? ?X ?Y
# A ?0 ?3
# B ?1 ?4
# C ?2 ?5

df_T_copy = df.T.copy()
print(df_T_copy)
# ? ?A ?B ?C
# X ?0 ?1 ?2
# Y ?3 ?4 ?5

df_transpose_copy = df.transpose(copy=True)
print(df_transpose_copy)
# ? ?A ?B ?C
# X ?0 ?1 ?2
# Y ?3 ?4 ?5

df.at['A', 'X'] = 100
print(df)
# ? ? ?X ?Y
# A ?100 ?3
# B ? ?1 ?4
# C ? ?2 ?5

print(df_T_copy)
# ? ?A ?B ?C
# X ?0 ?1 ?2
# Y ?3 ?4 ?5

print(df_transpose_copy)
# ? ?A ?B ?C
# X ?0 ?1 ?2
# Y ?3 ?4 ?5

transpose()的參數(shù)副本默認(rèn)為False,如果可能,則生成視圖而不是副本。如上例所示,當(dāng)每列的數(shù)據(jù)類型dtype不同時(shí),即使它是默認(rèn)值(copy = False),也會(huì)生成一個(gè)副本。不一定是視圖。

到此這篇關(guān)于Pandas.DataFrame行和列的轉(zhuǎn)置的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Pandas.DataFrame行列轉(zhuǎn)置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python內(nèi)存泄漏和內(nèi)存溢出的解決方案

    Python內(nèi)存泄漏和內(nèi)存溢出的解決方案

    這篇文章主要介紹了Python內(nèi)存泄漏和內(nèi)存溢出的解決方案,幫助大家維護(hù)后臺(tái)進(jìn)程,感興趣的朋友可以了解下
    2020-09-09
  • 詳解Python學(xué)習(xí)之安裝pandas

    詳解Python學(xué)習(xí)之安裝pandas

    這篇文章主要介紹了Python學(xué)習(xí)之安裝pandas,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Python玩轉(zhuǎn)Excel的讀寫改實(shí)例

    Python玩轉(zhuǎn)Excel的讀寫改實(shí)例

    今天小編就為大家分享一篇關(guān)于Python玩轉(zhuǎn)Excel的讀寫改實(shí)例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • Python語(yǔ)言描述機(jī)器學(xué)習(xí)之Logistic回歸算法

    Python語(yǔ)言描述機(jī)器學(xué)習(xí)之Logistic回歸算法

    這篇文章主要介紹了Python語(yǔ)言描述機(jī)器學(xué)習(xí)之Logistic回歸算法,涉及Sigmoid函數(shù),梯度上升法等相關(guān)內(nèi)容,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Python實(shí)現(xiàn)Smtplib發(fā)送帶有各種附件的郵件實(shí)例

    Python實(shí)現(xiàn)Smtplib發(fā)送帶有各種附件的郵件實(shí)例

    本篇文章主要介紹了Python實(shí)現(xiàn)Smtplib發(fā)送帶有各種附件的郵件實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • python爬蟲爬取股票的k線圖

    python爬蟲爬取股票的k線圖

    這篇文章主要介紹了python爬蟲爬取股票的k線圖,文章基于python的相關(guān)資料展開爬取股票的k線圖的詳細(xì)內(nèi)容分享,具有一定的的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • python中的import絕對(duì)導(dǎo)入與相對(duì)導(dǎo)入詳解

    python中的import絕對(duì)導(dǎo)入與相對(duì)導(dǎo)入詳解

    這篇文章主要介紹了python中的import絕對(duì)導(dǎo)入與相對(duì)導(dǎo)入詳解,在使用python做一些簡(jiǎn)單項(xiàng)目時(shí),import一般不會(huì)出現(xiàn)問題,但項(xiàng)目結(jié)構(gòu)復(fù)雜時(shí),import可能發(fā)生報(bào)錯(cuò),需要的朋友可以參考下
    2023-11-11
  • flask數(shù)據(jù)庫(kù)序列化操作實(shí)例探究

    flask數(shù)據(jù)庫(kù)序列化操作實(shí)例探究

    這篇文章主要為大家介紹了flask數(shù)據(jù)庫(kù)序列化操作實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • 簡(jiǎn)單了解如何封裝自己的Python包

    簡(jiǎn)單了解如何封裝自己的Python包

    這篇文章主要介紹了簡(jiǎn)單了解如何封裝自己的Python包,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Python記錄numpy.empty()函數(shù)引發(fā)的問題及解決

    Python記錄numpy.empty()函數(shù)引發(fā)的問題及解決

    這篇文章主要介紹了Python記錄numpy.empty()函數(shù)引發(fā)的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03

最新評(píng)論

保靖县| 东源县| 钦州市| 金寨县| 集安市| 塘沽区| 河南省| 武穴市| 保康县| 句容市| 梁河县| 育儿| 湛江市| 连山| 乃东县| 崇明县| 仙桃市| 来宾市| 福海县| 肇庆市| 文成县| 仪征市| 武乡县| 梓潼县| 信丰县| 英吉沙县| 屯门区| 莲花县| 嫩江县| 登封市| 重庆市| 德化县| 昔阳县| 临汾市| 盘山县| 东台市| 普兰店市| 金溪县| 高碑店市| 辉南县| 应用必备|