pandas 应用

类似vlookup

import pandas as pd

file = pd.read_csv('NIN411PF.CSV', encoding='ANSI')

a = pd.DataFrame({'PNUM95':['1609724175'],
                  'REFN95':['899270']
                  })
#按2个条件查询
file1 = pd.merge(file, a, on=['PNUM95','REFN95'])

file1.to_csv('abc.csv')

  

获取列标集, 行标集

后面不能加()

df.columns

df.index

增加一列

import numpy as np
import pandas as pd


df1 = pd.DataFrame(np.ones((3,4))*0, columns=['a','b','c','d'])
df2 = pd.DataFrame(np.ones((3,4))*1, columns=['a','b','c','d'])
df3 = pd.DataFrame(np.ones((3,4))*2, columns=['a','b','c','d'])

res = pd.concat([df1, df2, df3])
res['e']=None
print(res)

  

 增加2列

import numpy as np
import pandas as pd


df1 = pd.DataFrame(np.ones((3,4))*0, columns=['a','b','c','d'])
df2 = pd.DataFrame(np.ones((3,4))*1, columns=['a','b','c','d'])
df3 = pd.DataFrame(np.ones((3,4))*2, columns=['a','b','c','d'])
res = pd.concat([df1,df2,df3])
res = pd.concat([res, pd.DataFrame(columns=['AAA', 'bbb'])])
#要加sort,

  

横向合并

import numpy as np
import pandas as pd


df1 = pd.DataFrame(np.ones((3,4))*0, columns=['a','b','c','d'])
df2 = pd.DataFrame(np.ones((3,4))*1, columns=['a','b','c','d'])
df3 = pd.DataFrame(np.ones((4,4))*2, columns=['a','b','c','d'])


res = pd.concat([df1,df2,df3], axis=1)   
res = pd.concat([df1,df2,df3], axis=0, ignore_index=True)    #axis=0 纵向合并, index行标重新编写

  

加3列

import numpy as np
import pandas as pd


df1 = pd.DataFrame(np.ones((3,4))*0, columns=['a','b','c','d'])
df2 = pd.DataFrame(np.ones((3,4))*1, columns=['a','b','c','d'])
df3 = pd.DataFrame(np.ones((4,4))*2, columns=['a','b','c','d'])


res = pd.concat([df1,df2,df3], axis=0, ignore_index=True)
df = pd.concat([res, pd.DataFrame(columns=['x','y','z'])])

print(df)

  

字符转换

import numpy as np
import pandas as pd

df1 = pd.DataFrame(np.ones((3,4))*0, columns=['a','b','c','d'])
df2 = pd.DataFrame(np.ones((3,4))*1, columns=['a','b','c','d'])
df3 = pd.DataFrame(np.ones((4,4))*2, columns=['a','b','c','d'])

res = pd.concat([df1,df2,df3], axis=0, ignore_index=True)
res = res.astype({'a':'str','b':'str'})  #a, b列转成字符,

#res = res.astype(str) #整个数据表全转成字符
print(res.a)

  

分割一列为多列, 修改列标

import numpy as np
import pandas as pd

res = pd.read_csv('Book1.csv')

df1 = res.Item.str.split('-', expand=True)  # 按 - 分割, 加 expand=True
df2 = pd.concat([res, df1], axis=1)
df2.columns = ['a','b','c','d','e']  #重新设置列表

df2.rename(columns={'e':'xx'}, inplace=True)  #修改制定列名, 加 inplace=True

print(df2)

  

 修改行标列标

>>>data.rename(index={'A':'D', 'B':'E', 'C':'F'}, columns={'a':'d', 'b':'e', 'c':'f'}, inplace = True)
>>>data

  

print(df2.head(0))  ##返回data的前几行数据,默认为前五行,需要前十行则data.head(10)
print(df2.tail(1)) #返回data的后几行数据,默认为后五行,需要后十行则data.tail(10)

原文地址:https://www.cnblogs.com/pythonClub/p/10400451.html