pandas dataframe 备忘录

 查询api说明:

help(pd.Series.loc)

创建dataframe并用部分或者全部数据填充:

data = {'Country': ['Belgium',  'India',  'Brazil'],
        'Capital': ['Brussels',  'New Delhi',  'Brasilia'],
        'Population': [11190846, 1303171035, 207847528]}

df = pd.DataFrame(data,columns=['Country',  'Capital'])
df = pd.DataFrame([[1, 2], [4, 5], [7, 8]], index=[7, 8, 9], columns=['max_speed', 'shield'])
tuples = [
    ('cobra', 'mark i', 'name'), ('cobra', 'mark i', 'name1'), ('cobra', 'mark ii', 'name'),
    ('sidewinder', 'mark i', 'name'), ('sidewinder', 'mark ii', 'name'),
    ('viper', 'mark ii', 'name'), ('viper', 'mark iii', 'name')
]
index = pd.MultiIndex.from_tuples(tuples)
values = [[12, 2, 'a'], [12, 2, 'a'], [0, 4, 'a'], [10, 20, 'a'],
          [1, 4, 'a'], [7, 1, 'a'], [16, 36, 'a']]
df = pd.DataFrame(values, columns=['max_speed', 'shield', 'name'], index=index)

 从csv导入数据:

pd.read_csv('file.csv', header=None, nrows=5)
从excel导入数据:
pd.read_excel('filepath',  sheet_name='Sheet1')

从数据库导入数据:

import pymysql
from sqlalchemy import create_engine


pymysql.install_as_MySQLdb()
engine = create_engine(config.DB_CONN_STR, echo=True)
pd.read_sql_query("SELECT * FROM table", engine)

从 json字符串导入数据:

pd.read_json(jsonString)

从剪贴板导入数据:

pd.read_clipboard()

导出数据:

df.to_csv(file_name)
df.to_excel(file_name)
df.to_sql(tableName, connectionObject)
df.to_json(file_name)

查看dataframe结构:

df.shape
df.index
df.columns
df.info()

按列读取datafame数据:

df['Capital']

按行读取datafame数据:

df.head(1)
df[1:2] #return datafame
df.iloc[1] # return series
df.loc[df['Capital'] == 'Brussels']
df[df['Population']>1200000000]
df.tail(1)

按单元格读取dataframe数据:

df.iloc[1][1]
df.iat[1, 1]
df.loc[df['Capital'] == 'Brussels', ['Country']]
df.loc[lambda df: df['Capital'] == 'Brussels', ['Country']]
df.loc[1, 'Country']

dataframe排序:

df.sort_values(by='Population', ascending=False, na_position='first', key=lambda col: col)

修改dataframe数据:

df.rename(columns = {‘oldName’: ‘newName’})
df.columns = ['x', 'y', 'z'] #rename all in sequence
df['new_col'] = 0 #添加列
df.drop(columns=['new_col'], inplace=True) #删除列
df = df.append(df.sum(), ignore_index=True) #添加行
df.drop([3], inplace=True) #删除行
df.iat[1, 1]='Changed' #修改单元格

统计汇总:

df.sum() #求和
df.cumsum() #累加求和
df.min() #最小值
df.max() #最大值
df.describe()
df.mean() #平均数
df.median() #中位数
df.groupby(['Country', 'Capital']).sum())
df.count()

NA处理:

pd.isnull()
pd.notnull()
df.dropna()
df.dropna(axis=1)
df.fillna(n)

apply:

f = lambda x: [1,2,3]
df = df.apply(f, axis=1, result_type='broadcast')
df = df.applymap(f)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

blkq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值