大統領選挙
データのロード
列または行の削除–drop関数 df.drop([「列名」,axis=1):列を削除する例:df 1.drop(「handsome」,「smart」,axis=1)#handsomeおよびsmartという列全体 を削除 df.drop(columns=["列名"):削除列比入:df 1.drop(columns=["handsome","smart"])#handsomeとsmartという列の全列 を削除 df1.drop(columns=["handsome","smart")#handsomeとsmartという列の列全体を削除する例:df 1.drop([0,1])#削除インデックス0,1の行全体 まとめ:
drop関数の後にshift+tabを使用すると、関数のパラメータの詳細を表示できます.デフォルトパラメータaxis=0は、行を操作することを示します.列を操作するには、デフォルトパラメータaxis=1を変更する必要があります.デフォルトパラメータinplace=Falseは、元のデータを変更するのではなく、削除操作を実行した新しいdataframeを返します.元のデータを直接削除する必要がある場合は、デフォルトパラメータをinplace=True df 1に変更する必要がある.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors=‘raise’)
merge:表3を2枚マージします.pd.merge()メソッド接続フィールドを設定します.デフォルトパラメータhowはinner内接続であり、同じフィールドkeyでマージされます.すなわち、on=「key」に等価であり、表示可能な設定on=「key」でもあります.ここでも推奨します.
両側のマージフィールドが異なる場合はleft_を使用します.onとright_onパラメータはマージフィールドを設定します.もちろんここではマージフィールドはkeyなのでleft_onとright_onパラメータ値はkeyです.
4.pd.merge()メソッド接続方法を設定します.主にinner(内部接続)、outer(外部リンク)、left(左接続)、right(右接続)が含まれます.パラメータhowのデフォルト値はinner内接続で、上はすべて内接続を採用し、接続の両側にある値です.outer外部ジョインを使用すると、並列化され、NaNで満たされます.
外部ジョイン左ジョインと右ジョインの並列セット.左接続は左側のDataFrameがすべてのデータを取り、右側のDataFrameが左側のDataFrameに一致します.(右接続rightと左接続類似)
5.pd.merge()メソッドインデックス接続、および重複カラム名ネーミング.pd.merge()メソッドはleft_を設定できます.indexまたはright_indexの値はTrueでインデックス接続を使用します.たとえば、ここでdf 1はdata 1を使用して接続キー、df 2はインデックスを使用して接続キーを使用します.
上から2つのDataFrameにkey列があり、mergeがマージされるとpandasは自動的に後ろに(_x,_y)を付けて区別し、suffixesを設定することで名前を設定することもできます.
グラフィックディスプレイ
#
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pandas import Series, DataFrame
#
resulr_df=pd.read_cse('data/2016-us-ge-by-county.csv')
列または行の削除–drop関数
drop関数の後にshift+tabを使用すると、関数のパラメータの詳細を表示できます.デフォルトパラメータaxis=0は、行を操作することを示します.列を操作するには、デフォルトパラメータaxis=1を変更する必要があります.デフォルトパラメータinplace=Falseは、元のデータを変更するのではなく、削除操作を実行した新しいdataframeを返します.元のデータを直接削除する必要がある場合は、デフォルトパラメータをinplace=True df 1に変更する必要がある.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors=‘raise’)
#
result_df.drop(['StateCode','CountyFips'],axis=1,inplace=True)
result_df.head()
#
trump_df = result_df[result_df['Candidate']=='Trump']
clinton_df = result_df[result_df['Candidate']=='Clinton']
print(trump_df.head())
merge:表3を2枚マージします.pd.merge()メソッド接続フィールドを設定します.デフォルトパラメータhowはinner内接続であり、同じフィールドkeyでマージされます.すなわち、on=「key」に等価であり、表示可能な設定on=「key」でもあります.ここでも推奨します.
#
pd.merge(df1,df2)
pd.merge(df1,df2,on='key')
両側のマージフィールドが異なる場合はleft_を使用します.onとright_onパラメータはマージフィールドを設定します.もちろんここではマージフィールドはkeyなのでleft_onとright_onパラメータ値はkeyです.
#
pd.merge(df1,df2,left_on='key',right_on='key')
4.pd.merge()メソッド接続方法を設定します.主にinner(内部接続)、outer(外部リンク)、left(左接続)、right(右接続)が含まれます.パラメータhowのデフォルト値はinner内接続で、上はすべて内接続を採用し、接続の両側にある値です.outer外部ジョインを使用すると、並列化され、NaNで満たされます.
#
pd.merge(df1,df2,left_on='key',how='outer')
外部ジョイン左ジョインと右ジョインの並列セット.左接続は左側のDataFrameがすべてのデータを取り、右側のDataFrameが左側のDataFrameに一致します.(右接続rightと左接続類似)
#
pd.merge(df1,df2,left_on='key',how='left')
5.pd.merge()メソッドインデックス接続、および重複カラム名ネーミング.pd.merge()メソッドはleft_を設定できます.indexまたはright_indexの値はTrueでインデックス接続を使用します.たとえば、ここでdf 1はdata 1を使用して接続キー、df 2はインデックスを使用して接続キーを使用します.
#
pd.merge(df1,df2,left_on='data1',right_index=True)
上から2つのDataFrameにkey列があり、mergeがマージされるとpandasは自動的に後ろに(_x,_y)を付けて区別し、suffixesを設定することで名前を設定することもできます.
#
pd.merge(df1,df2,left_on='data1',right_index=True,suffixes=('_df1','_df2'))
# , 2 , 。
#on ,
result_df=pd.merge(trump_df,clinton_df,
on=['StateName','CountyName','CountyTotalVote'],
sufixes=['_t','_c'])
result_df.drop(['Party_t','Party_c','Candidate_t', 'Candidate_c'], axis=1, inplace=True)
# columns
result_df.columns =['StateName', 'CountyName', 'TotalVote', 'VoteTrump', 'VoteClinton']
#
'''df[]( ).groupby([df[ ],df[ ])( , , ).mean()( —— )
:
print(df[" "].groupby([df[" "],df[" "]]).mean())
# '''
[ ](https://www.cnblogs.com/Yanjy-OnlyOne/p/11217802.html)
result_df=result.groupby(by=result_df['StateName'],as_index=False).sum()#
result_df.drop([8],inplace=True)#
#
result_df['T-Ratio'] = result_df['VoteTrump'] / result_df['TotalVote']
result_df['C-Ratio'] = result_df['VoteClinton'] / result_df['TotalVote']
#
'''map() 。
function function , function 。
map() :
map(function, iterable, ...)
'''
result_df['Winner']=list(map(lambda x,y:'Trump' if x>y else 'Clinton',result_df['T-Ratio'],result_df['C-Ratio']))
#
income_df = pd.read_csv('data/us/2015-us-income-by-county.csv')
print(income_df.head())
print(income_df.Income.mean())
desc = income_df.describe()
print(desc)
'''loc , , ! ! !'''
print(desc['Income']['75%'])###??
print(desc.loc['50%', 'Income'])##??
#
result_df=pd.merge(result_df,income_df,on=['StateName'])
result_df=result_df.sort_values(by='Income',ascending=False)
print(result_df.head())
グラフィックディスプレイ
#
plt.rcParams['font.sans-serif']=['SimHei']
colors = reslut_df['Winner'].map({'Trump':'Blue', 'Clinton':'Red'})
spot_size = result_df['TotalVote']/6000.0#
plt.figure(figsize=(15,10))
plt.scatter(x=result_df["Income"],
y = result_df['T-Ratio'],
s=spot_size,
c=colors,
alpha=0.25
)#alpha ,
plt.xlabel(' ( )',fontsize=20)
plt.ylabel(' Trump ',fontsize=20)
plt.grid(True) #
plt.show()