python中dataframe常见操作:取行、列、切片、统计特征值

#  -*- coding: utf-8 -*-
import numpy as np
import pandas as pd
from pandas import  *
from numpy import *


data = DataFrame(np.arange(16).reshape(4,4),index = list("ABCD"),columns=list('wxyz'))
print data
print data[0:2]       #取前两行数据
print'+++++++++++++'

print len(data )              #求出一共多少行
print data.columns.size      #求出一共多少列
print'+++++++++++++'

print data.columns        #列索引名称
print data.index       #行索引名称
print'+++++++++++++'

print data.ix[1]                #取第2行数据
print data.iloc[1]             #取第2行数据
print'+++++++++++++'

print data['x']      #取列索引为x的一列数据
print data.loc['A']      #取第行索引为”A“的一行数据,
print'+++++++++++++'

print data.loc[:,['x','z'] ]          #表示选取所有的行以及columns为a,b的列;
print data.loc[['A','B'],['x','z']]     #表示选取'A'和'B'这两行以及columns为x,z的列的并集;
print'+++++++++++++'

print data.iloc[1:3,1:3]              #数据切片操作,切连续的数据块
print data.iloc[[0,2],[1,2]]              #即可以自由选取行位置,和列位置对应的数据,切零散的数据块
print'+++++++++++++'

print data[data>2]       #表示选取数据集中大于0的数据
print data[data.x>5]       #表示选取数据集中x这一列大于5的所有的行

print'+++++++++++++'
a1=data.copy()
print a1[a1['y'].isin(['6','10'])]    #表显示满足条件:列y中的值包含'6','8'的所有行。

print data.mean()           #默认对每一列的数据求平均值;若加上参数a.mean(1)则对每一行求平均值;
print data['x'].value_counts()    #统计某一列x中各个值出现的次数:

print data.describe()         #对每一列数据进行统计,包括计数,均值,std,各个分位数等。


data.to_excel(r'E:\pypractice\Yun\doc\2.xls',sheet_name='Sheet1')  #数据输出至Excel

————————————————
原文链接:https://blog.csdn.net/tanlangqie/article/details/78656588

 

遍历数据有以下三种方法:

在这里插入图片描述

简单对上面三种方法进行说明:

  • iterrows(): 按行遍历,将DataFrame的每一行迭代为(index, Series)对,可以通过row[name]对元素进行访问。
  • itertuples(): 按行遍历,将DataFrame的每一行迭代为元祖,可以通过row[name]对元素进行访问,比iterrows()效率高。
  • iteritems():按列遍历,将DataFrame的每一列迭代为(列名, Series)对,可以通过row[index]对元素进行访问。

示例数据

1

2

3

4

5

6

import pandas as pd

 

inp = [{'c1':10, 'c2':100}, {'c1':11, 'c2':110}, {'c1':12, 'c2':123}]

df = pd.DataFrame(inp)

 

print(df)

在这里插入图片描述

按行遍历iterrows():

1

2

for index, row in df.iterrows():

 print(index) # 输出每行的索引值

在这里插入图片描述

row[‘name']

1

2

3

# 对于每一行,通过列名name访问对应的元素

for row in df.iterrows():

 print(row['c1'], row['c2']) # 输出每一行

 

在这里插入图片描述

按行遍历itertuples():

getattr(row, ‘name')

1

2

for row in df.itertuples():

 print(getattr(row, 'c1'), getattr(row, 'c2')) # 输出每一行

在这里插入图片描述

按列遍历iteritems():

1

2

for index, row in df.iteritems():

 print(index) # 输出列名

在这里插入图片描述

1

2

for row in df.iteritems():

 print(row[0], row[1], row[2]) # 输出各列

在这里插入图片描述

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值