作者beatitude (精算业小卒)
看板Python
标题Re: [问题]pandas的操作问题
时间Thu Jul 9 22:54:15 2015
其实用不到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档?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.231.113.106
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1436453659.A.A37.html
1F:推 allen511081: 感谢前辈的解答,自己想的太复杂了 07/10 12:38
2F:→ allen511081: 不过现在会出错在df['birdName'].map(f),因为我是 07/10 12:39
3F:→ allen511081: 要用tttest1112里的名字去原始资料里搜寻,但是这个 07/10 12:40
4F:→ allen511081: 档案好像有一些奇怪的字元,我不太会处理,还请前辈 07/10 12:41
5F:→ allen511081: 指导一下 07/10 12:41
6F:→ allen511081: 错误讯息:KeyError: 'birdName' 07/10 12:42
7F:→ beatitude: 因为我没有csv档案,所以无法重现你的错误讯息 07/10 18:07
11F:→ beatitude: 不过因为测试档没有涵盖所有的鸟名,所以只拆出部分 07/10 21:12
12F:推 allen511081: 好的,我会全部来测试看看 07/10 21:42
13F:→ allen511081: 感谢前辈的指导 07/10 21:42
※ 编辑: beatitude (1.163.108.193), 07/11/2015 14:19:34