pandas 应用
类似vlookup
1 2 3 4 5 6 7 8 9 10 11 | 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列
1 2 3 4 5 6 7 | 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])<br>res = pd.concat([res, pd.DataFrame(columns = [ 'AAA' , 'bbb' ])]) #要加sort, |
横向合并
1 2 3 4 5 6 7 8 9 10 | 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列
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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) |
字符转换
1 2 3 4 5 6 7 8 9 10 11 12 | 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) |
分割一列为多列, 修改列标
1 2 3 4 5 6 7 8 9 10 11 12 | 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) |
修改行标列标
1 2 | >>>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)
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步