一次任务,老大要求我将数据里面的想要的几列抽取出来绘制成一个新的表格给他。之前么有接触过pandas想着基本的python库应该可以实现csv文件的列读取吧,头铁秉着仅通过import csv来实现按照列读取的思维方式,从下午五点一直修改到晚上十点后面老大实在催的急了放弃了老老实实花了半个小时用行读写来实现。
第二天越想越不服,这么方便的一个编程软件在列读写上怎么可能没有一条简单的出路,在翻阅了大部分前辈的笔记之后发现其实导入一个简单的pandas库就可以实现了。然后花了一早上将一些暂时用的上的功能整理了一下,兴致勃勃的将昨晚的那个脚本又写了一边发给老大,然后老大回复:这里的电脑没有pandas模块,以后尽量少用= =。
奈何我头铁:
from pandas import DataFrame,Series
import pandas as pd
'''
CSV读写
import pandas as pd
from pandas import Series,DataFrame
df=pd.read_csv('c.csv')
print df
df.to_csv('d.csv',index=False,header=True) #col=['','',''] 写入哪几列
'''
df1=DataFrame({'key':['b','b','a','c','a','a','b'],
'data1':range(7)})
df2=DataFrame({'key':['a','b','d'],
'data2':range(3)})
print df1
print df2
#对多个匹配on=['','','']
print pd.merge(df1,df2,on='key') #将df1跟df2根据key拼接起来,行数为交集,‘c'的数据消失,默认为inner
print pd.merge(df1,df2,on='key',how='outer')#并集,对不上的显示NaN,行数等于两者并集
print pd.merge(df1,df2,on='key',how='left')#以左边为主,左边多少行输出多少,右边对应没有为NaN
print pd.merge(df1,df2,on='key',how='right')#以右边为主,右边多少行输出多少,左边对应没有为NaN,顺序不变
print pd.merge(df1,df2,on='key',how='inner') #将df1跟df2根据key拼接起来,行数为交集,‘c'的数据消失
df3=DataFrame({'key':['b','b','a','c','a','a','b'],
'data':range(7)})
df4=DataFrame({'key':['a','b','d'],
'data':range(3)})
print pd.merge(df3,df4,on='key',how='outer',suffixes=('_left','_right')) #名字重复的数据用suffixes在名字后面加点东西
#其中merge中的参数:
#left_on='(左边用作连接键的列)'
#right_on='(右边用作连接键的列)'
#left_index=True 左边行索引当作连接键的列
#right_index=True 右边行索引当作连接键的列
#当多个列表进行连接的时候
df1.join([df2,df3],how='outer',on='key')