免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

pandas DataFrame數(shù)據(jù)重命名列名的幾種方式

 candidacy 2020-05-13

版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。

前言

首先,我們創(chuàng)建一個(gè)5行4列的DataFrame數(shù)據(jù)作為示例,進(jìn)行演示

import pandas as pdimport numpy as np

df = pd.DataFrame(data=np.arange(20).reshape(5,4), columns=['a', 'b', 'c', 'd'])df
    a   b   c   d0   0   1   2   31   4   5   6   72   8   9  10  113  12  13  14  154  16  17  18  19

一 部分列重命名

有時(shí)候,我們只需要將部分列的列名重命名??梢允褂米值涞姆绞剑闹付ǖ牧忻?。

df.rename(columns={'a': 'A'})A   b   c   d0   0   1   2   31   4   5   6   72   8   9  10  113  12  13  14  154  16  17  18  19

沒有指定inplace=True, df本身的列名并沒有改變。

df
    a   b   c   d0   0   1   2   31   4   5   6   72   8   9  10  113  12  13  14  154  16  17  18  19

這種情況下比較適合不變原有數(shù)據(jù),通過賦值對新數(shù)據(jù)列改名,如下:

df2 = df.rename(columns={'a': 'A'})df2
    A   b   c   d0   0   1   2   31   4   5   6   72   8   9  10  113  12  13  14  154  16  17  18  19

如果我們指定inplace=True,則會改變原始數(shù)據(jù)

df.rename(columns={'a': 'A', 'c': 'C', 'd': 'D'}, inplace=True)df
    A   b   C   D0   0   1   2   31   4   5   6   72   8   9  10  113  12  13  14  154  16  17  18  19

二 全部列重命名

df.columns = new_columns, new_coumns 可以是列表或元組, 但新舊列名的長度必須一致,否者會不匹配報(bào)錯(cuò)。這種改變方式是直接改變了原始數(shù)據(jù)。

df.columns = ['a1', 'b1', 'c1', 'd1']df
   a1  b1  c1  d10   0   1   2   31   4   5   6   72   8   9  10  113  12  13  14  154  16  17  18  19

三 str 批量修改列名

將列名’a1’, ‘b1’… 批量改為’a2’, 'b2’…

df.columns = df.columns.str.replace('1', '2')df
   a2  b2  c2  d20   0   1   2   31   4   5   6   72   8   9  10  113  12  13  14  154  16  17  18  19

其實(shí)str的原理和第二章是一樣的,不同的是,我們對列名進(jìn)行了字符串的操作。


四 讀取csv文件重命名

names = new_columns, 在讀取文件的時(shí)候直接重命名列名。

df = pd.read_csv('xxx.csv', names=new_columns, header=0)

后記

這里講一個(gè)之前在讀csv文件, 重命名時(shí),踩到的一個(gè)小坑。

以前讀csv文件,讀到重命名時(shí),我都是先讀文件,轉(zhuǎn)成DataFrame之后再重命名的。

df = pd.read_csv('xxx.csv')df.columns = new_columns

這樣做,大部分情況下不會有什么問題,直到有天我讀的是無列名的csv文件。pandas默認(rèn)將第一行數(shù)據(jù)作為了列名。這時(shí)我再進(jìn)行df.columns = new_columns 時(shí),第一行數(shù)據(jù)就會因?yàn)樽鳛榱忻?,被new_columns替換了。這就導(dǎo)致我第一行數(shù)據(jù)白白丟失了(想哭)。今天寫這篇博客的目的。也就是想記住這個(gè)坑。

pandas的read_csv() 函數(shù),其實(shí)還踩過很多坑,里面有很多參數(shù),我會在之后的博客里詳解read_csv()的各個(gè)參數(shù)的用法。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多