pandas常用语法总结

pandas读取数据库中的数据

import pandas as pd
from sqlalchemy import create_engine

con = create_engine('mysql+pymysql://user:password@host:3306/database?charset=utf8')
pd.read_sql(query_sql, con)

两个DataFrame纵向合并

df,data都为DataFrame
df.append(data, sort=False)

两个DataFrame横向向合并

df,data都为DataFrame
pd.merge(data, df, on='id') # 根据id进行合并
df某列字段中有字典,把字典转成列,再与df合并,我这里的字段是dongmi_keywords
df_final = pd.concat([df, df['dongmi_keywords'].apply(pd.Series)], axis=1).drop('dongmi_keywords',axis=1)
print(df_final)

删除重复项

DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)
df = df.drop_duplicates(['name'], keep='first')

subset : 指定列名,根据列名删除重复项
keep: {'first', 'last', False} 默认保留第一项,当keep=False时,则是不重复的项
inplace : True/False, 默认 False 
是直接在原来数据上修改还是保留一个副本
df[~df['name'].isin(df1['name'])]
根据字段name判断,取出df数据不在df1中的数据

DataFrame行列转置

pd.DataFrame(a).stack().sort_values(ascending=False).reset_index()  #  .stack()用于行列转置,因为自己的需求需要对值进行排序用了sort_values

DataFrame对数据值排序

DataFrame.sort_values(by=##’,axis=0,ascending=True, inplace=False, na_position=‘last’)

by:指定列名(axis=0或’index’)或索引值(axis=1或’columns’)
axis:若axis=0或’index’,则按照指定列中数据大小排序;若axis=1或’columns’,则按照指定索引中数据大小排序,默认axis=0
ascending:是否按指定列的数组升序排列,默认为True,即升序排列
inplace:是否用排序后的数据集替换原来的数据,默认为False,即不替换
na_position:{‘first’,‘last’},设定缺失值的显示位置

遍历DataFrame中的每一行数据

for indexs in data.index:
    print('indexs======>', indexs)
    print('pubDate==>', data.iloc[indexs])
    #如果要修改其中某一个字段的值
    d_index = list(data.columns).index('要修改的字段名') # 所在位置的索引值
    data.iloc[indexs, d_index] = 要修改为的值 
    print(data)  # 此时的data已经是修改后的数据

你可能感兴趣的:(python)