Pandas处理csv表格

可以结合这篇使用:数据处理利器Pandas使用手册

1)读取csv文件

data =pandas.read_csv(‘test.csv’) //返回的是DataFrame变量

first_rows = data.head(n) //返回前n条数据,默认返回5条

cols = data.columns //返回全部列名

dimensison = data.shape //返回数据的格式,数组,(行数,列数)

data.values //返回底层的numpy数据

如下去所示的csv数据:leaf_data

解析1:

import pandas as pd
train_data = pd.read_csv("train.csv")

# 将标签转为0,1,2,3,4,...
# 去掉重复的
species = train_data['species'].unique()
print species
# 转为0,1,2,3,4,...
species = pd.Series(range(0, len(species)), index=list(species))
print species

# 修改标签数据为:0,1,2,3,4,...
def fix_spieces(line):
    line['species'] = species.loc[line['species']]
    return line
train_data = train_data.apply(fix_spieces, axis=1)
print train_data[0:4]

# 返回numpy数据。
# 下标从0开始。
# 取样本数据,所有行:第二列到最后一列。
train_data.values[0::, 2::]
# 取标签数据,所有行:第一列。
train_data.values[0::, 1]

解析2:

import pandas as pd
import numpy as np
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import StandardScaler

train_data = pd.read_csv("train.csv")

# 将train_data中的‘id’列弹出。
ID = train_data.pop('id')
# print train_data[0:1]

# 将train_data中的‘species’列弹出。
y = train_data.pop('species')
# 将species向量化。
y = LabelEncoder().fit(y).transform(y)
print y

# standardize the data by setting the mean to 0 and std to 1
standardize = True
X = StandardScaler().fit(train_data).transform(train_data) if standardize else train_data.values
print X[0:1]

2)pandas的主要数据类型dtype: object, 字符串类型 int, 整型 float, 浮点型 datetime, 时间类型 bool, 布尔型 print data.dtpyes输出每一列的数据类型 3)索引 4)选择数据 data.loc[1] //返回单列数据 data.loc[1:3] //返回切片列数据,相当于 data.loc[[1,2,3]] data.loc[:,['ID’]] data.loc[:4,['ID','YELP’]] //返回指定行的指定类,从0行到4行,包括第4行 data.iloc[:,:] //返回所有数据 data.iloc[:2,1:3] //返回特定行特定列的数据 data[‘ID’] //返回列 data[2:5] //返回行 data[3:6][:2] data[‘ID’][3:6] data[3:6][‘ID’] data[data.YELP>0] //YELP这列的值不为空,即NaN data[data['ID'].isin(['v4','v5'])] //返回有这个值的列 5)缺失值处理 去掉包含缺失值的行:df.dropna(how=‘any’) 对缺失值进行填充:df.fillna(values=‘NULL’) 对数据进行布尔补充:pandas.isnull(df)

6)数据处理

<class 'pandas.core.series.Series'> 方法 to_string to_json json.loads(df.loc[0:5,['ID','YELP']].to_json())

输出.csv文件。

对应解析1:

output = model.predict_proba(test_data.values[0::, 1::])        
out = pd.DataFrame(output, index=test_data.values[0::, 0].astype(np.int), columns = species.index.values)
out.index.name = "id"

out.to_csv("output.csv")

对应解析2:

LABELS = sorted(pd.read_csv('train.csv').species.unique())

ID, test_data = load_test_data()

yPred_proba = model.predict(test_data)

# Converting the test predictions in a dataframe as depicted by sample submission
yPred = pd.DataFrame(yPred_proba,index=ID,columns=LABELS)

print('Creating and writing submission...')
fp = open('submit.csv', 'w')
fp.write(yPred.to_csv())
print('Finished writing submission')
# Display the submission
yPred.tail()

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏二进制文集

LeetCode 动态规划 题目分类汇总

A robot is located at the top-left corner of a m x n grid (marked 'Start' in the...

40460
来自专栏计算机视觉与深度学习基础

Leetcode 81 Search in Rotated Sorted Array II

Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed...

20890
来自专栏Golang语言社区

算法基础:最大递减数问题(Golang实现)

给出一个非负整数,找到这个非负整数中包括的最大递减数。一个数字的递减数是指相邻的数位从大到小排列的数字。 如: 95345323,递减数有:953,95,53,...

35050
来自专栏数值分析与有限元编程

Fortran知识 | 跳出多层循环

当一个程序出现多层循环,对coder们来说这无疑是讨厌的,尤其是要跳出某一层循环就更加崩溃了,面对那么多的do-end do,怎么跳?到底怎么跳? Fortra...

37850
来自专栏程序员的知识天地

Python实现随机生成验证码?小菜一碟!

Python随机生成验证码的方法有很多,今天给大家列举两种,大家也可以在这个基础上进行改造,设计出适合自己的验证码方法

16420
来自专栏逍遥剑客的游戏开发

D3D深度测试和Alpha混合

27650
来自专栏null的专栏

挑战数据结构和算法——栈的push、pop序列

题目来源“数据结构与算法面试题80道”。在此给出我的解法,如你有更好的解法,欢迎留言。 ? 问题分析:本题考查栈的基本操作,栈是一种“先进后出”的数据结构。判...

34360
来自专栏向治洪

高级聚类

FuzzyKmeans 在对数据进行聚类时,最常用的方法应该是kmeans,但是kmean只能保证每一条待聚类的数据划分到一个类别,针对一条数据可以被划分到多个...

20980
来自专栏决胜机器学习

PHP数据结构(十一) ——图的连通性问题与最小生成树算法(2)

PHP数据结构(十一)——图的连通性问题与最小生成树算法(2) (原创内容,转载请注明来源,谢谢) 再次遇到微信公众号限制字数3000字的问题。因此将...

459100
来自专栏王小雷

Python之数据规整化:清理、转换、合并、重塑

Python之数据规整化:清理、转换、合并、重塑 1. 合并数据集 pandas.merge可根据一个或者多个不同DataFrame中的行连接起来。 panda...

34660

扫码关注云+社区

领取腾讯云代金券