使用的软件为Jupyter Notebook

将DataFrame包装进数据框;

import numpy as np
disl={
   'id':list(range(1,10)),
     'cpu':['i7','i5',np.nan,'i7','i7','i5',np.nan,np.nan,'i5']}
pd.DataFrame(disl)

tsv文件读取:

import pandas as pd
train=pd.read_csv('test.tsv', sep='\t')#sep输入的是分隔符

如果读取tsv已有表头:

train=pd.read_csv('test.tsv', sep='\t', header=0)

如果已有主键列:

train=pd.read_csv('test.tsv', sep='\t', header=0, index_col='id')

原文地址:https://zgljl2012.com/python-pandasdu-qu-tsvwen-jian/


python pandas读取前十行:

import pandas as pd
data=pd.read_csv('./data/chipotle.tsv', sep='\t',nrows=10)

获取pandas的列数:

import pandas as pd
data=pd.read_csv('./data/chipotle.tsv', sep='\t')
data.shape[1]

获取pandas的行数:

import pandas as pd
data=pd.read_csv('./data/chipotle.tsv', sep='\t')
data.shape[0]#或者:len(data)

打印全部列名

import pandas as pd
data=pd.read_csv('./data/chipotle.tsv', sep='\t')
#1:
list(data)
#2:
[column for column in data]
#3:(返回的是array)
data.columns.values
#4:(返回Index,可以通过 tolist(), 或者 list(array) 转换为list)
data.columns

查看pandas中的索引数据类型:

#少量数据:
import pandas as pd
data=pd.read_csv('./data/chipotle.tsv', sep='\t')
data.dtype

#大量数据:

import pandas as pd
data=pd.read_csv('./data/chipotle.tsv', sep='\t')
data_type=data.cloumns
for a in data_type:
		print(a+':'+str(data[a].dtype))

pandas按照指定列排序:

import pandas  as pd
data=pd.read_csv('./data/chipotle.tsv', sep='\t')
df = data.groupby(by=['item_name']).sum()
df.sort_values(by="item_name" , ascending=False)
#by: 指定列 ascending,False为降序,True为升序

pandas获取n行到m行

import pandas as pd
data=pd.read_csv('./data/chipotle.tsv', sep='\t')
data.local[n,m]#n,m为int

pandas获取指定列:

import pandas as pd
data=pd.read_csv('./data/chipotle.tsv', sep='\t')
#获取quantity和item_price列
data[['quantity','item_price']]

pandas指定列相乘:

import pandas as pd
data=pd.read_csv('./data/chipotle.tsv', sep='\t')
#获取quantity和item_price列
data[['quantity','item_price']]
data['col3']=data.apply(lambda data:data['quantity']*data['item_price'], axis=1)
#新建的col3列为指定列乘积
#若其中一项为string,则相乘只是将字符串重复

pandas中删除包含指定字符的行:

import pandas as pd
import numpy as np
data=pd.read_csv('./data/chipotle.tsv', sep='\t')
data=data[['quantity','item_price']]#单独显示价格和数量
#~必须有
data=data[~data['item_price'].str.contains('$')] 
data

输出:

pandas中想取到包含某些字符的行:

import pandas as pd
import numpy as np
data=pd.read_csv('./data/chipotle.tsv', sep='\t')
data=data[['quantity','item_price']]#单独显示价格和数量
#去掉~即可
data=data[data['item_price'].str.contains('$')] 
data

pandas中去除开头的$:

import pandas as pd
import numpy as np
data=pd.read_csv('./data/chipotle.tsv', sep='\t')
data=data[['quantity','item_price']]#单独显示价格和数量
data['item_price'].str.strip('$')



下面文章所用的原数据如图:

1.修改列名(使他看起来好看/方便一些):

import pandas as pd
data=pd.read_csv('./data/job_info/job_info.csv',encoding='gbk')
#要求名称:data.columns =['公司','岗位','工作地点','工资','发布日期']
#法一:
data=data.rename(columns={
   '字节跳动':'公司','数据产品经理':'岗位','北京':'工作地点','2-3.5万/月':'工资','09-03':'发布日期'})

#法二:
#data.set_axis(['公司','岗位','工作地点','工资','发布日期'],axis='columns',inplace=False)
data

2.如果你想看元数据中岗位的总数/哪个岗位需求最多:

import pandas as pd
data=pd.read_csv('./data/job_info/job_info.csv',encoding='gbk')
data=data.rename(columns={
   '字节跳动':'公司','数据产品经理':'岗位','北京':'工作地点','2-3.5万/月':'工资','09-03':'发布日期'})
data
#2.数据产品经理所需岗位最多
df= data.groupby(['岗位']).count()
df

3.将其中的最后一行“发布时间”改为dataframe时间类型:

import pandas as pd
data=pd.read_csv('./data/job_info/job_info.csv',encoding='gbk')
data=data.rename(columns={
   '字节跳动':'公司','数据产品经理':'岗位','北京':'工作地点','2-3.5万/月':'工资','09-03':'发布日期'})
from datetime import datetime
#不同的时间格式修改:
#%y 两位数的年份表示(00-99)
#%Y 四位数的年份表示(000-9999)
#%m 月份(01-12)
#%d 日(0-31)
#%H 24小时制小时(0-24)
#%I 12小时制小时(0-12)
#%M 分钟(00-59)
#%S 秒(00-59)
data['发布日期']=pd.to_datetime(data['发布日期'],format='%m-%d')

4.查看指定发布日期的行

import pandas as pd
data=pd.read_csv('./data/job_info/job_info.csv',encoding='gbk')
data=data.rename(columns={
   '字节跳动':'公司','数据产品经理':'岗位','北京':'工作地点','2-3.5万/月':'工资','09-03':'发布日期'})
data
#显示所有9-3号的招聘
data[data['发布日期'].isin(['09-03'])]

5.查看公司在深圳并且岗位是数据分析师的行:

import pandas as pd
data=pd.read_csv('./data/job_info/job_info.csv',encoding='gbk')
data=data.rename(columns={
   '字节跳动':'公司','数据产品经理':'岗位','北京':'工作地点','2-3.5万/月':'工资','09-03':'发布日期'})
data
#显示所有9-3号的招聘
data=data[data['工作地点'].isin(['深圳'])]
data=data[data['岗位'].isin(['数据分析师'])]

6.去除所有行中有NaN值得行:

import pandas as pd
data=pd.read_csv('./data/job_info/job_info.csv',encoding='gbk')
data=data.rename(columns={
   '字节跳动':'公司','数据产品经理':'岗位','北京':'工作地点','2-3.5万/月':'工资','09-03':'发布日期'})
data
#如果想要代替的话:
#data.fillna(0)
#丢弃:
end=data.dropna(axis=0,how='any')
end