ホームページ > バックエンド開発 > Python チュートリアル > Python を使用した Excel での 14 の一般的な操作

Python を使用した Excel での 14 の一般的な操作

WBOY
リリース: 2023-04-15 19:07:01
転載
921 人が閲覧しました

Python を使用した Excel での 14 の一般的な操作

#みなさんこんにちは、私は新人です。

データはオンラインで見つかった売上データで、次のようになります:


Python を使用した Excel での 14 の一般的な操作

1. 関連式: Vlookup


vlookup は Excel でほぼ最も一般的に使用される数式であり、通常は 2 つのテーブル間の関連クエリに使用されます。そこで、まずこの表を 2 つの表に分割しました。

df1=sale[['订单明细号','单据日期','地区名称', '业务员名称','客户分类', '存货编码', '客户名称', '业务员编码', '存货名称', '订单号',
'客户编码', '部门名称', '部门编码']]
df2=sale[['订单明细号','存货分类', '税费', '不含税金额', '订单金额', '利润', '单价','数量']]
ログイン後にコピー

需要: df1 の各オーダーに対応する利益を知りたいです。

df2のテーブルに利益列が存在するので、df1の各オーダーに対応する利益を知りたいのです。 Excel を使用する場合、最初に注文明細番号が一意の値であることを確認してから、df1 に新しい列を追加して =vlookup(a2,df2!a:h,6,0) と記述し、それをプルダウンすると、大丈夫ですよ。 (残り 13 個は Excel は書きません)


Python を使用して実装するにはどうすればよいですか?

#查看订单明细号是否重复,结果是没。
df1["订单明细号"].duplicated().value_counts()
df2["订单明细号"].duplicated().value_counts()
df_c=pd.merge(df1,df2,on="订单明细号",how="left")
ログイン後にコピー

2. ピボット テーブル


要件: 各地域の営業マンが稼いだ総利益と平均利益を知りたいです。


pd.pivot_table(sale,index="地区名称",columns="业务员名称",values="利润",aggfunc=[np.sum,np.mean])
ログイン後にコピー

3. 2 つの列の違いを比較します


このテーブルの各列のデータの次元が異なるため、比較は無意味であるため、最初に注文詳細 次に、数値の差が比較されます。


要件: 注文明細番号と注文明細番号 2 の差分を比較して表示します。

sale["订单明细号2"]=sale["订单明细号"]
#在订单明细号2里前10个都+1.
sale["订单明细号2"][1:10]=sale["订单明细号2"][1:10]+1
#差异输出
result=sale.loc[sale["订单明细号"].isin(sale["订单明细号2"])==False]
ログイン後にコピー

4. 重複値の削除


要件: 営業担当者がコーディングした重複値の削除


sale.drop_duplicates("业务员编码",inplace=True)
ログイン後にコピー

5. 欠損値の処理


まず、売上データのどの列に欠損値があるかを確認します。

#列的行数小于index的行数的说明有缺失值,这里客户名称329<335,说明有缺失值
sale.info()
ログイン後にコピー

Python を使用した Excel での 14 の一般的な操作

要件: 顧客コードの欠損値を 0 で埋めるか、欠損値のある行を削除します。実際、欠損値の処理方法は非常に複雑です。ここでは簡単な処理方法のみを紹介します。数値変数の場合、最も一般的に使用される方法は平均、中央値、または最頻値です。より複雑な値の場合は、ランダムです。森林モデルを使用して、他のディメンションに基づいて予測することができ、結果が入力されます。カテゴリ変数の場合は、ビジネス ロジックに基づいて入力する方が正確です。たとえば、ここでの要件は、顧客名の欠損値を埋めることです。これは、在庫分類で最も高い頻度で発生する在庫に対応する顧客名に従って埋めることができます。


ここでは、単純な解決策を使用します。欠損値を 0 で埋めるか、顧客コード内の欠損値を含む行を削除します。

#用0填充缺失值
sale["客户名称"]=sale["客户名称"].fillna(0)
#删除有客户编码缺失值的行
sale.dropna(subset=["客户编码"])
ログイン後にコピー

6. 複数条件のフィルタリング


需要: 北京エリアで注文金額が 6,000 を超える商品を販売している営業マン、Zhang Ai に関する情報を知りたいです。 。


sale.loc[(sale["地区名称"]=="北京")&(sale["业务员名称"]=="张爱")&(sale["订单金额"]>5000)]
ログイン後にコピー

7. ファジー フィルタリング データ


要件: インベントリ名に「Samsung」または「Sony」が含まれる情報をフィルタリングします。


sale.loc[sale["存货名称"].str.contains("三星|索尼")]
ログイン後にコピー

8. 分類と概要


需要: 北京エリアの各販売員の利益の合計。


sale.groupby(["地区名称","业务员名称"])["利润"].sum()
ログイン後にコピー

9. 条件計算


需要: 在庫名に「Samsung」が含まれており、税金が 1,000 を超える注文は何件ありますか?これらの注文の合計と平均利益はいくらですか? (または最小値、最大値、四分位、ラベルの差)


sale.loc[sale["存货名称"].str.contains("三星")&(sale["税费"]>=1000)][["订单明细号","利润"]].describe()
ログイン後にコピー

Python を使用した Excel での 14 の一般的な操作#10. データ間のスペースを削除


要件: 削除インベントリー名の両側のスペース。


sale["在庫名"].map(lambda s:s.strip(""))


11. データ分離


##要件: 日付と時刻を分けてください。

Python を使用した Excel での 14 の一般的な操作

sale=pd.merge(sale,pd.DataFrame(sale["单据日期"].str.split(" ",expand=True)),how="inner",left_index=True,right_index=True)
ログイン後にコピー

12. 外れ値の置換


まず、describe() 関数を使用して、データに外れ値があるかどうかを簡単に確認します。


#出力税が負の値になっていることがわかりますが、これは通常は当てはまらず、外れ値とみなされます。


sale.describe()
ログイン後にコピー


要件: 外れ値を置き換えるには 0 を使用します。

Python を使用した Excel での 14 の一般的な操作

sale["订单金额"]=sale["订单金额"].replace(min(sale["订单金额"]),0)
ログイン後にコピー

13. グループ化


要件: 収益データの分布に従って地域を「悪い」、「中」、「良い」、「非常に良い」にグループ化します。 "


まず第一に、もちろん、利益のデータ分布を確認する必要があります。ここでは、四分位数を使用して判断します。


sale.groupby("地区名称")["利润"].sum().describe()
ログイン後にコピー


[-9,7091] 区間の地域の総利益を四分位に従って「悪い」としてグループ化し、(7091,10952) 区間をグループ化します。グループ化は「中」です。 (10952,17656] は良好としてグループ化され、(17656,37556] は非常に良好としてグループ化されます。

#先建立一个Dataframe
sale_area=pd.DataFrame(sale.groupby("地区名称")["利润"].sum()).reset_index()
#设置bins,和分组名称
bins=[-10,7091,10952,17656,37556]
groups=["较差","中等","较好","非常好"]
#使用cut分组
#sale_area["分组"]=pd.cut(sale_area["利润"],bins,labels=groups)
ログイン後にコピー
Python を使用した Excel での 14 の一般的な操作 14. ビジネス ロジックに従ってタグを定義します。

需要: 売上利益率 (つまり、利益/注文金額) が 30% を超えて高品質の製品としてマークされ、5% 未満が通常の製品としてマークされる製品情報。 , Excel には一般的に使用される操作がたくさんあります。一般的に使用される操作を 14 個列挙しました。他の操作を実装したい場合は、コメントして一緒に議論することができます。また、私の Python の記述が適切ではないこともわかっています。十分に簡潔なので、loc inertia を使用します (実際、クエリはより簡潔になります)。これらのいくつかに精通している場合、操作を記述するより良い方法がある場合は、必ずコメントして知らせてください。あなた! ######

最後に、Excel と Python のどちらが使いやすいかを比較するのではなく、実際にはどちらもツールです。Excel は最も普及しているデータ処理ツールとして、素晴らしい、いくつかの操作は確かに Python の方が簡単ですが、Excel には Python よりも簡単な操作もたくさんあります。

たとえば、非常に単純な操作: 各列を合計し、それを最下行に表示します。Excel では、列に sum() 関数を追加し、それを左に引っ張って問題を解決します。 , while Python 次に、関数を定義する必要があります(Python は形式を決定する必要があり、数値データでない場合は直接エラーを報告するためです。)

以上がPython を使用した Excel での 14 の一般的な操作の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:51cto.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート