Re: [问题]pandas的操作问题

楼主: beatitude (...)   2015-07-09 22:54:15
其实用不到csv,
你的资料档一样可由pandas读入:
df = pd.read_csv('tttest1112.csv')
dat = pd.read_csv('bird-1.csv')
把多余的括号移除:
# remove parenthesis
f = lambda s: s.split('(')[0]
df['birdName'] = df['birdName'].map(f)
执行筛选并存挡:
for birdname in df['birdName']:
savepath = 'your/file/path/' + birdname + '.csv'
dat[dat['birdName']==birdname].to_csv(savepath)
※ 引述《allen511081 (蓝)》之铭言:
: 抱歉,题目无法详述我的问题,先将我的程式码贴上
: # -*- coding: utf-8 -*-
: import pandas as pd
: import csv
: df = pd.read_csv('birds-1.csv',low_memory=False)
: dfs=[]
: names=[]
: with open('tttest1112.csv','rb') as csvfile:
: records = csv.reader((line.replace('\0','') for line in csvfile),
: delimiter=",")
: for row in records: ##将原始资料存入
: for i in xrange(1,6,1):
: df2=df[df['birdName'].isin(row)]
: df2.to_csv('./'+str(i)+'.csv',index=False)
: 最近我重新开始我的资料剖析,在pandas这边遇到一样存盘问题,
: 而这次比较不一样的是,我一个tttest1112.CSV测试档里放鸟名,
: 附图:https://goo.gl/zxLWk7
: 我要从这个CSV里头,
: 将鸟名传到上面的isin()后,对原始资料(df)做特定值的选取,
: https://goo.gl/dQKKuH
: 之后再存成新的CSV档,而这样的语法写完后,可以产生5个CSV档,
: 但是里面的资料都会是最后一个鸟名的资料(我记得DF好像只会存最后一笔的资料?),
: 请问对于DF的操作有没有办法让五种鸟的资料分别存一个CSV档?
作者: allen511081 (蓝)   2015-07-10 12:38:00
感谢前辈的解答,自己想的太复杂了不过现在会出错在df['birdName'].map(f),因为我是要用tttest1112里的名字去原始资料里搜寻,但是这个档案好像有一些奇怪的字符,我不太会处理,还请前辈指导一下错误讯息:KeyError: 'birdName'
楼主: beatitude (...)   2015-07-10 18:07:00
因为我没有csv档案,所以无法重现你的错误讯息
作者: allen511081 (蓝)   2015-07-10 18:45:00
抱歉,附上下载连结,birds-1:https://goo.gl/2B6ym3ttttest1112:https://goo.gl/6IWQk5
楼主: beatitude (...)   2015-07-10 21:10:00
code放在: https://goo.gl/9o9s31不过因为测试档没有涵盖所有的鸟名,所以只拆出部分
作者: allen511081 (蓝)   2015-07-10 21:42:00
好的,我会全部来测试看看感谢前辈的指导

Links booklink

Contact Us: admin [ a t ] ucptt.com