import pymysql import pandas as pd host='' port=4000 user='' password='111111' db='' db= pymysql.connect(host=host, port=port, user=user, password=password, db=db, charset='utf8', ) sql="""select cid,sum from `biao`""" d = pd.read_sql(sql, con=db) # print(d) ''' cid sum 0 8985 0 1 7523 0 2 7136 0 3 7616 0 4 7522 0 5 7152 0 6 7524 0 7 7523 0 8 7153 0 9 7135 0 10 7137 0 11 7138 0 12 7522 0 13 7522 0 14 9299 0 15 7616 0 16 7160 0 17 7152 0 18 7524 0 19 7616 0 20 7155 0 21 7616 0 22 7136 0 23 7135 0 24 7522 0 25 7417 0 26 7415 0 27 7616 0 28 7522 0 29 7522 0 ... ... ... 1850 9232 0.10 1851 9232 0.10 1852 9232 0.10 1853 9211 0.10 1854 9232 0.10 1855 9232 0.10 1856 7417 0 1857 7415 0 1858 7148 0 1859 7150 0 1860 7145 0 1861 7151 0 1862 7147 0 1863 7143 0 1864 7138 0 1865 9232 0.10 1866 7364 1.00 1867 9232 0.10 1868 9211 0.10 1869 9232 0.10 1870 9232 0.10 1871 9428 0.10 1872 9232 0.10 1873 9428 0.10 1874 9232 0.10 1875 7417 0 1876 7435 1.00 1877 7364 1.00 1878 9209 0.01 1879 9211 0.10 [1880 rows x 2 columns]''' db.close() d=d.astype({'sum':float}) # d.sort_values('cid') df=d.groupby('cid',as_index=False).count().rename({'sum':'count'},axis=1) df1=d.groupby('cid',as_index=False).sum().sort_values('sum',ascending=False) df2=df.merge(df1,on=['cid']).sort_values('sum',ascending=False) print(df2) ''' cid count sum 60 9139 23 10287.00 68 9361 1 2280.00 67 9360 7 1893.00 64 9232 354 254.50 62 9211 102 226.00 69 9428 141 70.80 41 8541 3 57.00 61 9209 61 37.51 43 8728 1 29.00 42 8726 1 29.00 28 7364 27 27.00 39 8074 3 27.00 31 7435 9 9.00 40 8382 6 6.00 33 7455 3 3.00 34 7456 2 2.00 32 7453 1 1.00 63 9213 1 0.10 58 9016 5 0.00 45 8985 56 0.00 66 9300 17 0.00 65 9299 20 0.00 59 9017 5 0.00 44 8984 9 0.00 46 8986 8 0.00 57 9015 5 0.00 47 8987 5 0.00 48 8988 7 0.00 49 8989 6 0.00 50 8990 14 0.00 .. ... ... ... 2 7128 13 0.00 3 7129 16 0.00 4 7133 18 0.00 5 7134 18 0.00 6 7135 54 0.00 7 7136 82 0.00 8 7137 17 0.00 9 7138 20 0.00 10 7139 12 0.00 11 7141 15 0.00 12 7142 13 0.00 13 7143 23 0.00 14 7144 37 0.00 15 7145 14 0.00 16 7146 12 0.00 17 7147 12 0.00 18 7148 34 0.00 19 7150 35 0.00 20 7151 11 0.00 21 7152 29 0.00 22 7153 13 0.00 23 7154 17 0.00 24 7155 17 0.00 25 7156 26 0.00 26 7160 29 0.00 27 7344 51 0.00 29 7415 43 0.00 30 7417 54 0.00 1 7127 17 0.00 35 7522 36 0.00''' df3=pd.merge(df,df1,how='left',on='cid').sort_values('sum',ascending=False) # print(df3) ''' cid count sum 60 9139 23 10287.00 68 9361 1 2280.00 67 9360 7 1893.00 64 9232 354 254.50 62 9211 102 226.00 69 9428 141 70.80 41 8541 3 57.00 61 9209 61 37.51 43 8728 1 29.00 42 8726 1 29.00 28 7364 27 27.00 39 8074 3 27.00 31 7435 9 9.00 40 8382 6 6.00 33 7455 3 3.00 34 7456 2 2.00 32 7453 1 1.00 63 9213 1 0.10 58 9016 5 0.00 45 8985 56 0.00 66 9300 17 0.00 65 9299 20 0.00 59 9017 5 0.00 44 8984 9 0.00 46 8986 8 0.00 57 9015 5 0.00 47 8987 5 0.00 48 8988 7 0.00 49 8989 6 0.00 50 8990 14 0.00 .. ... ... ... 2 7128 13 0.00 3 7129 16 0.00 4 7133 18 0.00 5 7134 18 0.00 6 7135 54 0.00 7 7136 82 0.00 8 7137 17 0.00 9 7138 20 0.00 10 7139 12 0.00 11 7141 15 0.00 12 7142 13 0.00 13 7143 23 0.00 14 7144 37 0.00 15 7145 14 0.00 16 7146 12 0.00 17 7147 12 0.00 18 7148 34 0.00 19 7150 35 0.00 20 7151 11 0.00 21 7152 29 0.00 22 7153 13 0.00 23 7154 17 0.00 24 7155 17 0.00 25 7156 26 0.00 26 7160 29 0.00 27 7344 51 0.00 29 7415 43 0.00 30 7417 54 0.00 1 7127 17 0.00 35 7522 36 0.00'''
pandas数据合并
最新推荐文章于 2024-05-29 16:21:04 发布