pandas中的dataframe一些总结

2019年7月10日 pandas中DataFrame的使用

pandas连接SQL server

import pymssql
import pandas as pd
conn = pymssql = (
    host="",
    port=1433,
    user="",
    password="",
    database=""
)
df = pd.read_sql(sql,con=conn)

通过某列数据查找另一列的数据

total_sales = int(df[(df["地区"] == regional) & (df["商品编码"] == shop_code) & (df["卖家简称"] == sale_people)]["销售数量"])

给dataframe添加索引

df.reset_index(drop=True)

按条件取数据的索引

df.index[(df["score"]==5)&(df["name"]=="A")]# 结果为列表

修改索引和列名

df.rename(index={0:"A",1:"B"},columns={"n":"name","s":"sex"})

通过索引修改某一列下的数据

for i in index_list:
    df.loc[i,"地区"] = df.loc[i,"国家"]

按条件查询数据

# 单个条件
df[df["地区"]=="智利"]
# 多个条件 & | 
df[(df["地区"]=="智利")&(df["商品编号"]=="zs12341")]

分组求和

df1 = df.groupby(by=["商品编码","卖家简称","地区"])["销售数量"].sum().reset_index()

分组排序取前三

# 降序排列
groupby_sorted = df.sort_values(by=["地区","销售数量"],ascending=False).head(3)

apply的使用

import pandas as pd
​
df = pd.DataFrame([['A', 5, '2019-03-01 00:00:30'],
                   ['A', 2, '2019-04-01 00:00:18'],
                   ['A', 2, '2019-03-01 00:00:30'],
                   ['B', 5, '2019-03-01 00:00:30'],
                   ['B', 9, '2019-03-01 00:00:29']],
                  columns=['name', 'score', 'tm'])
print(df)
def f(data):
    # print(data["score"])
    if data["score"] > 5:
        return 10
    else:
        return 5
    pass
df["test"]=df.apply(f,axis=1)
"""
1、apply中传入的参数是df,是传入一个dataframe类型的数据。
2、axis=1,将函数应用到每一行数据中。
3、df["test"]中test可以,score也可以。
"""

合并dataframe

import pandas as pd
df3 = pd.merge(df1,df2,how="inner",on=["商品编码","卖家简称"])

将一个dataframe添加到另一个dataframe下面

# 1、追加后需要重新赋值给另一个变量
df1 = df.append(df)
# 2、如果要操作df,需要重新设置一下索引
df2 = df1.reset_index(drop=True)

删除重复数据

df1 = df.drop_duplicates(keep="first",inplace=False)

保存dataframe数据到Excel中

writer = pd.ExcelWriter("./test.xlsx")
df.to_excel(writer, "sheet1")
writer.save()

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

帅帅的Python

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

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

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

打赏作者

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

抵扣说明:

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

余额充值