基于pandas的CSV文件基本操作及DataFrame结构理解2018-12-23

以泰坦尼克号生还概率预测的训练集作为演示

首先在开头导入pandas库


import pandas as pd

在pandas中 可以通过read_csv()函数读取csv文件


test = pd.read_csv("./test.csv")#文件路径

随后我们打印看一下


print(test)


    PassengerId  Pclass  ...              Cabin Embarked

0            892      3  ...                NaN        Q

1            893      3  ...                NaN        S

2            894      2  ...                NaN        Q

3            895      3  ...                NaN        S

4            896      3  ...                NaN        S

5            897      3  ...                NaN        S

6            898      3  ...                NaN        Q

7            899      2  ...                NaN        S

8            900      3  ...                NaN        C

9            901      3  ...                NaN        S

10          902      3  ...                NaN        S

11          903      1  ...                NaN        S

12          904      1  ...                B45        S

13          905      2  ...                NaN        S

14          906      1  ...                E31        S

15          907      2  ...                NaN        C

16          908      2  ...                NaN        Q

17          909      3  ...                NaN        C

18          910      3  ...                NaN        S

19          911      3  ...                NaN        C

20          912      1  ...                NaN        C

21          913      3  ...                NaN        S

22          914      1  ...                NaN        S

23          915      1  ...                NaN        C

24          916      1  ...    B57 B59 B63 B66        C

25          917      3  ...                NaN        S

26          918      1  ...                B36        C

27          919      3  ...                NaN        C

28          920      1  ...                A21        S

29          921      3  ...                NaN        C

..          ...    ...  ...                ...      ...

388        1280      3  ...                NaN        Q

389        1281      3  ...                NaN        S

390        1282      1  ...                B24        S

391        1283      1  ...                D28        S

392        1284      3  ...                NaN        S

393        1285      2  ...                NaN        S

394        1286      3  ...                NaN        S

395        1287      1  ...                C31        S

396        1288      3  ...                NaN        Q

397        1289      1  ...                B41        C

398        1290      3  ...                NaN        S

399        1291      3  ...                NaN        Q

400        1292      1  ...                  C7        S

401        1293      2  ...                NaN        S

402        1294      1  ...                NaN        C

403        1295      1  ...                NaN        S

404        1296      1  ...                D40        C

405        1297      2  ...                D38        C

406        1298      2  ...                NaN        S

407        1299      1  ...                C80        C

408        1300      3  ...                NaN        Q

409        1301      3  ...                NaN        S

410        1302      3  ...                NaN        Q

411        1303      1  ...                C78        Q

412        1304      3  ...                NaN        S

413        1305      3  ...                NaN        S

414        1306      1  ...                C105        C

415        1307      3  ...                NaN        S

416        1308      3  ...                NaN        S

417        1309      3  ...                NaN        C

[418 rows x 11 columns]

我们需要展示的比较完全,所以需要去掉省略号,并且不需要这么多行数据

在开头使用set_option()函数读取csv文件


pd.set_option('max_columns',200)

这个函数的用法是pandas.set_option(pat, value)

官方文档

常用的大概有:max_columns设置最大列数;max_rows设置最大行数;max_colwidth设置一格中最大字符数

然后使用DataFrame.head()获取前几行内容,然后打印一下。

不过需要注意,head()函数实际上类似于一个引用,如果想在修改t5时不影响test,需要使用DataFrame.copy()。

另外如果不使用copy()的话,可能会出现A value is trying to be set on a copy of a slice from a DataFrame错误。


#t5 = test.head(5)

t5 = test.head(5).copy()

print(t5)


  PassengerId  Pclass                                          Name  0  \

0          892      3                              Kelly, Mr. James  1 

1          893      3              Wilkes, Mrs. James (Ellen Needs)  1 

2          894      2                    Myles, Mr. Thomas Francis  1 

3          895      3                              Wirz, Mr. Albert  1 

4          896      3  Hirvonen, Mrs. Alexander (Helga E Lindqvist)  1 

      Sex  Age  SibSp  Parch  Ticket    Fare Cabin Embarked 

0    male  34.5      0      0  330911  7.8292  NaN        Q 

1  female  47.0      1      0  363272  7.0000  NaN        S 

2    male  62.0      0      0  240276  9.6875  NaN        Q 

3    male  27.0      0      0  315154  8.6625  NaN        S 

4  female  22.0      1      1  3101298  12.2875  NaN        S 

我们看一下上面的打印数据,也许是因为太长了,有了个续行的反斜杠,不过这个影响不大。但是相比之下,可以发现少了最后显示行数和列数的语句

我仍然想知道行列数,所以可以使用DataFrame.shape获取他的大小,或者直译形状也可以


print(t5.shape)


(5, 11)

接下来我们尝试一下添加和删除列

插入列的语法是DataFrame.insert(loc, column, value[, …]),loc是插入的位置,column是列名,value既可以一个值也可以是一个列表,如果value是一个值,该列全部为value,如果value是一个列表,那么这个列表必须和DataFrame的行数相同,该列会由value中的值依次填充

或者也可以使用插入列的语法是DataFrame[column] = value[, …]的形式在末尾添加。此外还有concat(),reindex()等

删除可以用drop(),并不修改原数据,而是返回一个修改后的数据,既可以删除列也可以删除行,DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')。labels即要删除的行列名,和axis一起起作用,同时删除多个时用列表。或者也可以使用index和columns直接指定要删除的行列

t5.loc[row] = value[, …]可以在最后添加一行,不过对于行的修改需求通常较少


t5['Pclasssssss'] = t5.Pclass

t5 = t5.drop('Pclass',axis=1)

print(t5)


  PassengerId                                          Name    Sex  Age  \

0          892                              Kelly, Mr. James    male  34.5 

1          893              Wilkes, Mrs. James (Ellen Needs)  female  47.0 

2          894                    Myles, Mr. Thomas Francis    male  62.0 

3          895                              Wirz, Mr. Albert    male  27.0 

4          896  Hirvonen, Mrs. Alexander (Helga E Lindqvist)  female  22.0 

  SibSp  Parch  Ticket    Fare Cabin Embarked  Pclasssssss 

0      0      0  330911  7.8292  NaN        Q            3 

1      1      0  363272  7.0000  NaN        S            3 

2      0      0  240276  9.6875  NaN        Q            2 

3      0      0  315154  8.6625  NaN        S            3 

4      1      1  3101298  12.2875  NaN        S            3 

有趣的是


t5.PassengerId += 100

可以运行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,277评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,689评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,624评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,356评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,402评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,292评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,135评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,992评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,429评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,636评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,785评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,492评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,092评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,723评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,858评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,891评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,713评论 2 354

推荐阅读更多精彩内容