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()

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章