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()


  • 6
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MachineLP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值