<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>pandas｜python-manブログ</title>
	<atom:link href="https://python-man.club/category/python/pandas/feed/" rel="self" type="application/rss+xml" />
	<link>https://python-man.club</link>
	<description>独学者でもpythonでアプリを作れる！</description>
	<lastBuildDate>Sat, 11 Nov 2023 13:30:49 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.2</generator>
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/><atom:link rel="hub" href="https://websubhub.com/hub"/>	<item>
		<title>pythonでデータ分析を行うための前処理【大量サンプルコードあり】</title>
		<link>https://python-man.club/python_data_processing_pretreatment/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=python_data_processing_pretreatment</link>
					<comments>https://python-man.club/python_data_processing_pretreatment/#comments</comments>
		
		<dc:creator><![CDATA[syou0445]]></dc:creator>
		<pubDate>Wed, 23 Feb 2022 01:37:13 +0000</pubDate>
				<category><![CDATA[pandas]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[データ分析]]></category>
		<category><![CDATA[python データ分析 前処理]]></category>
		<guid isPermaLink="false">https://python-man.club/?p=590</guid>

					<description><![CDATA[pythonを使用してデータ分析を行う際には、前処理を必ず行います 前処理はそのデータ分析の8割を決定すると言われているくらい、重要な処理になります そもそも前処理というのは、 蓄積されたデータを目的の作業(統計処理や機]]></description>
										<content:encoded><![CDATA[<p>pythonを使用してデータ分析を行う際には、前処理を必ず行います</p>
<p><span style="color: #ff0000;"><strong>前処理はそのデータ分析の8割を決定する</strong></span>と言われているくらい、重要な処理になります</p>
<p>そもそも前処理というのは、</p>
<div class="concept-box6">
<p><strong>蓄積されたデータを目的の作業(統計処理や機械学習など)を行うために、欠損値を処理したり、単位を揃えて綺麗にしたり、加工して使えるカタチにすることを指します</strong></p>
</div>
<p>取得・蓄積されているデータがそのままで使えるということは、ほぼありません</p>
<p>そのため、前処理という作業が必要になってきます</p>
<p>今回の記事では、</p>
<div class="simple-box3">
<p style="text-align: center;"><strong>pythonを使ってデータ分析を行う際の前処理について、理解を深めたい</strong></p>
<p style="text-align: center;"><strong>そもそもpythonを使ってデータ分析を行う際の、前処理についてよくわからない</strong></p>
</div>
<p>といった疑問を解決していきます</p>
<p><span style="background-color: #ffff99;"><strong>データ分析の前処理が理解できたら、実際にデータ分析・機械学習を行なっていきましょう</strong></span></p>
<p class="p1" style="text-align: left;"><span class="s1"><a href="https://python-man.club/data_analytics/"><b>Pythonでデータ分析を始めよう！挫折しない実践ガイドでスキルアップ</b></a></span></p>
<p class="p2" style="text-align: left;"><span class="s2"><a href="https://python-man.club/python_machine_learning_programming/"><b>Python</b><span class="s3"><b>で機械学習に学んで実装してみよう【サンプルコードあり】</b></span></a></span><span class="s4"> </span></p>
<p>&nbsp;</p>
<h2>pythonでデータ分析の前処理</h2>
<img fetchpriority="high" decoding="async" class="alignnone size-large wp-image-738" src="https://python-man.club/wp-content/uploads/2022/12/luke-chesser-JKUTrJ4vK00-unsplash-1024x683.jpg" alt="python データ分析" width="1024" height="683" srcset="https://python-man.club/wp-content/uploads/2022/12/luke-chesser-JKUTrJ4vK00-unsplash-1024x683.jpg 1024w, https://python-man.club/wp-content/uploads/2022/12/luke-chesser-JKUTrJ4vK00-unsplash-300x200.jpg 300w, https://python-man.club/wp-content/uploads/2022/12/luke-chesser-JKUTrJ4vK00-unsplash-768x512.jpg 768w, https://python-man.club/wp-content/uploads/2022/12/luke-chesser-JKUTrJ4vK00-unsplash-1536x1024.jpg 1536w, https://python-man.club/wp-content/uploads/2022/12/luke-chesser-JKUTrJ4vK00-unsplash.jpg 1920w, https://python-man.club/wp-content/uploads/2022/12/luke-chesser-JKUTrJ4vK00-unsplash-1024x683.jpg 856w" sizes="(max-width: 1024px) 100vw, 1024px" />
<p><span style="color: #ff0000;"><strong>前処理はそのデータ分析の8割を決定する</strong></span>と言われているくらい、重要な処理になります</p>
<p>そもそも前処理というのは、</p>
<div class="concept-box6">
<p><strong>蓄積されたデータを目的の作業(統計処理や機械学習など)を行うために、欠損値を処理したり、単位を揃えて綺麗にしたり、加工して使えるカタチにすることを指します</strong></p>
</div>
<p>データ分析を行う際の前処理としては、以下のような手順になるかと思います</p>
<ol>
<li><strong>事前分析</strong></li>
<li><strong>クリーニング</strong></li>
<li><strong>加工・変換</strong></li>
</ol>
<p>それぞれについてを解説していきたいと思います</p>
<h2>pythonでデータ分析の前処理</h2>
<img decoding="async" class="alignnone size-large wp-image-739" src="https://python-man.club/wp-content/uploads/2022/12/shahadat-rahman-O2MdroNurVw-unsplash-1024x683.jpg" alt="python 前処理" width="1024" height="683" srcset="https://python-man.club/wp-content/uploads/2022/12/shahadat-rahman-O2MdroNurVw-unsplash-1024x683.jpg 1024w, https://python-man.club/wp-content/uploads/2022/12/shahadat-rahman-O2MdroNurVw-unsplash-300x200.jpg 300w, https://python-man.club/wp-content/uploads/2022/12/shahadat-rahman-O2MdroNurVw-unsplash-768x512.jpg 768w, https://python-man.club/wp-content/uploads/2022/12/shahadat-rahman-O2MdroNurVw-unsplash-1536x1024.jpg 1536w, https://python-man.club/wp-content/uploads/2022/12/shahadat-rahman-O2MdroNurVw-unsplash.jpg 1920w, https://python-man.club/wp-content/uploads/2022/12/shahadat-rahman-O2MdroNurVw-unsplash-1024x683.jpg 856w" sizes="(max-width: 1024px) 100vw, 1024px" />
<p>まず最初に、どういった前処理が必要なのかを考えていく必要があります</p>
<p>そのためには、<strong><span class="marker">どういったデータなのか、データの代表値を確認、欠損値の有無の確認</span></strong>などを行なっていきます</p>
<p>今回はseabornに入っているirisのデータで行なっていきたいと思いますので、まずはデータを読み込んでおきます</p>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
print(iris)

&gt;&gt;&gt;出力結果
     sepal_length  sepal_width  petal_length  petal_width    species
0             5.1          3.5           1.4          0.2     setosa
1             4.9          3.0           1.4          0.2     setosa
2             4.7          3.2           1.3          0.2     setosa
3             4.6          3.1           1.5          0.2     setosa
4             5.0          3.6           1.4          0.2     setosa
..            ...          ...           ...          ...        ...
145           6.7          3.0           5.2          2.3  virginica
146           6.3          2.5           5.0          1.9  virginica
147           6.5          3.0           5.2          2.0  virginica
148           6.2          3.4           5.4          2.3  virginica
149           5.9          3.0           5.1          1.8  virginica

[150 rows x 5 columns]</code></pre>
<h3>事前分析を行う</h3>
<p>事前分析では代表値や、データの型などを参照していきます</p>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#データ構成を確認
print(iris.info())

&gt;&gt;&gt;出力結果
&lt;class 'pandas.core.frame.DataFrame'&gt;
RangeIndex: 150 entries, 0 to 149
Data columns (total 5 columns):
 #   Column        Non-Null Count  Dtype  
---  ------        --------------  -----  
 0   sepal_length  150 non-null    float64
 1   sepal_width   150 non-null    float64
 2   petal_length  150 non-null    float64
 3   petal_width   150 non-null    float64
 4   species       150 non-null    object 
dtypes: float64(4), object(1)
memory usage: 6.0+ KB</code></pre>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#行数と列数を確認
print(iris.shape)

&gt;&gt;&gt;出力結果
(150, 5)

#行数だけ確認
print(len(iris))

&gt;&gt;&gt;出力結果
150

#列数だけ確認
print(len(iris.columns))

&gt;&gt;&gt;出力結果
5</code></pre>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#インデックスの確認
print(iris.index)

&gt;&gt;&gt;出力結果
RangeIndex(start=0, stop=150, step=1)

#カラム名の確認
print(iris.columns)

&gt;&gt;&gt;出力結果
Index(['sepal_length', 'sepal_width', 'petal_length', 'petal_width',
       'species'],
      dtype='object')</code></pre>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#DataFrameのデータ型を確認
print(iris.dtypes)

&gt;&gt;&gt;出力結果
sepal_length    float64
sepal_width     float64
petal_length    float64
petal_width     float64
species          object
dtype: object</code></pre>
<h3>欠損値の確認</h3>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#データの欠損値を確認する
print(iris.isnull())

&gt;&gt;&gt;出力結果
     sepal_length  sepal_width  petal_length  petal_width  species
0           False        False         False        False    False
1           False        False         False        False    False
2           False        False         False        False    False
3           False        False         False        False    False
4           False        False         False        False    False
..            ...          ...           ...          ...      ...
145         False        False         False        False    False
146         False        False         False        False    False
147         False        False         False        False    False
148         False        False         False        False    False
149         False        False         False        False    False

[150 rows x 5 columns]</code></pre>
<p>ちょっと見にくいので、もう少し簡潔にしていきます</p>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#欠損値をカラム名ごとにまとめて表示
print(iris.isnull().sum())

&gt;&gt;&gt;出力結果
sepal_length    0
sepal_width     0
petal_length    0
petal_width     0
species         0
dtype: int64</code></pre>
<h3>欠損値の削除・置換</h3>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
# 欠損値がひとつでも含まれている行を削除する
iris.dropna()

# ある行のすべての値が欠損していたら、その行を削除する
iris.dropna(subset=['列名'], how='all')

# すべての欠損値を0で置換する
iris.fillna(0)</code></pre>
<h3>csvで読み込んだ列ごとの平均値で欠損値を置換する</h3>
<pre class="language-python"><code>def data_mean():#欠損値に対してその列の平均値を置換
    type = [("all file","*")]   
    file_path = filedialog.askopenfilename(filetypes = type, initialdir = os.getcwd ())   
        
    df = pd.read_csv(file_path, engine="python")
    for i in df.columns:
        mean=df[i].mean()
        df[i].fillna(mean,inplace=True)
    #欠損値を置換して、新規csvファイルを作成する
    new_file_path = file_path + "_a" +".csv"
    df.to_csv(new_file_path, index=False) </code></pre>
<h3>欠損値を無視する</h3>
<pre class="language-python"><code># 計算の際に少しでも欠損値があると結果Nanになる。欠損値を無視するオプションを使う。
iris.sum(skipna=False)
iris.mean(skipna=False)</code></pre>
<h3>データの重複を確認する</h3>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#重複を含まない値を確認
print(iris['sepal_length'].unique())

&gt;&gt;&gt;出力結果
[5.1 4.9 4.7 4.6 5.  5.4 4.4 4.8 4.3 5.8 5.7 5.2 5.5 4.5 5.3 7.  6.4 6.9
 6.5 6.3 6.6 5.9 6.  6.1 5.6 6.7 6.2 6.8 7.1 7.6 7.3 7.2 7.7 7.4 7.9]</code></pre>
<h3>要素の抽出</h3>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#単一のデータを選択する
print(iris['sepal_length'])

&gt;&gt;&gt;出力結果
0      5.1
1      4.9
2      4.7
3      4.6
4      5.0

145    6.7
146    6.3
147    6.5
148    6.2
149    5.9
Name: sepal_length, Length: 150, dtype: float64</code></pre>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#複数のデータを選択する
print(iris[['sepal_length','sepal_width']])

&gt;&gt;&gt;出力結果
     sepal_length  sepal_width
0             5.1          3.5
1             4.9          3.0
2             4.7          3.2
3             4.6          3.1
4             5.0          3.6
..            ...          ...
145           6.7          3.0
146           6.3          2.5
147           6.5          3.0
148           6.2          3.4
149           5.9          3.0

[150 rows x 2 columns]</code></pre>
<h3>GUI上でキーワード指定して要素を抽出する</h3>
<p>csvを読み込んで、GUI上でキーワード指定して要素を抽出することもできます</p>
<p>詳細は以下の記事を参考にしてください</p>
<a href="https://python-man.club/data-extraction/" class="blog-card"><div class="blog-card-hl-box"><i class="jic jin-ifont-post"></i><span class="blog-card-hl"></span></div><div class="blog-card-box"><div class="blog-card-thumbnail"><img decoding="async" src="https://python-man.club/wp-content/uploads/2021/12/アイキャッチ用-320x180.jpg" class="blog-card-thumb-image wp-post-image" alt="python pandas 要素の抽出" width ="162" height ="91" /></div><div class="blog-card-content"><span class="blog-card-title">【キーワード抽出可能】pythonのpandasで要素を抽出する方法(iloc,locなど)</span><span class="blog-card-excerpt">pythonのpandasを使用して、データの要素を抽出・変更する方法をサンプルコード・コメントアウト付きで解説していきます。GUIに実装した場合の、キーワードでの抽出方法もサンプルコード付きで解説していきますので、参考にしてください。...</span></div></div></a>
<pre class="language-python"><code>import pandas as pd
import tkinter as tk
import os
from tkinter import filedialog 
from scipy import stats

root=tk.Tk() 
root.title("test")
root.geometry("800x600")

frame=tk.Frame()
frame.grid(row=0)
var=tk.StringVar()
var1=tk.StringVar()
text=tk.Entry(width=20,textvariable=var)
text.place(x=500,y=100)

listbox=tk.Listbox(frame,height=30,selectmode="single")
listbox.grid(row=1,column=1)

def fileselect():
    global var
    type = [("CSV file", "*.csv")]
    file_path = tk.filedialog.askopenfilename(filetypes = type, initialdir = os.getcwd ())  
    csv_file = pd.read_csv(file_path, engine="python", index_col=None)
    i = var.get()
    if i in csv_file.columns:
        word = csv_file.loc[:,i].values
        listbox.insert(tk.END,word)

    
Button=tk.Button(frame,text="selectfile",command=fileselect,width=20)
Button.grid(row=3,column=1)

root.mainloop()</code></pre>
<h2>csvデータを使ってデータ分析のための前処理</h2>
<img decoding="async" class="alignnone size-large wp-image-740" src="https://python-man.club/wp-content/uploads/2022/12/sai-kiran-anagani-5Ntkpxqt54Y-unsplash-1024x683.jpg" alt="python cdv 前処理" width="1024" height="683" srcset="https://python-man.club/wp-content/uploads/2022/12/sai-kiran-anagani-5Ntkpxqt54Y-unsplash-1024x683.jpg 1024w, https://python-man.club/wp-content/uploads/2022/12/sai-kiran-anagani-5Ntkpxqt54Y-unsplash-300x200.jpg 300w, https://python-man.club/wp-content/uploads/2022/12/sai-kiran-anagani-5Ntkpxqt54Y-unsplash-768x512.jpg 768w, https://python-man.club/wp-content/uploads/2022/12/sai-kiran-anagani-5Ntkpxqt54Y-unsplash-1536x1024.jpg 1536w, https://python-man.club/wp-content/uploads/2022/12/sai-kiran-anagani-5Ntkpxqt54Y-unsplash.jpg 1920w, https://python-man.club/wp-content/uploads/2022/12/sai-kiran-anagani-5Ntkpxqt54Y-unsplash-1024x683.jpg 856w" sizes="(max-width: 1024px) 100vw, 1024px" />
<p>サンプルのcsvを作成しているので、こちらを元に前処理を行なっていきます</p>
<h3>csvデータの読み込み</h3>
<pre class="language-python"><code>import pandas as pd

df = pd.read_csv("sample.csv")
print(df)

&gt;&gt;&gt;出力結果

   Name Height weight
0     A   1.72m    72
1     B    171   71kg
2     C    168     62
3     D  1.56m    NaN
4     E  1.72m   70kg
5     F  168cm     68
6     G  155cm   55kg
7     H   1.56m   NaN
8     I    167   80kg
9     J    177     80
10    K    168   70kg
11    L    NaN   58kg
12    M  1.41m   50kg</code></pre>
<p>欠損値やら単位の違いやらがひどいデータを作っています</p>
<p>これを一から前処理していきましょう</p>
<h3>単位を削除する</h3>
<p>まずは単位を削除していきます</p>
<p>csvなら手打ちでやればいいじゃん、ってなりますが、これが100個くらいあったら大変ですよね</p>
<pre class="language-python"><code>def height_to_num(Height):
    if type(Height)==float:
        return Height
    if "cm" in Height:
        Height = float(Height[:-2])
    if (type(Height)!=float) and ("m" in Height):
        Height = float(Height[:-1])
        Height *= 100
    return Height

def weight_to_num(weight):
    if type(weight)==float:
        return weight
    if  (type(weight)!=float) and ("kg" in weight):
        weight = weight[:-2]
    return float(weight)

df["Height"] = df.Height.apply(height_to_num)
df["weight"] = df.weight.apply(weight_to_num)
print(df)

&gt;&gt;&gt;出力結果

   Name Height  weight
0     A    172    72.0
1     B    171    71.0
2     C    168    62.0
3     D    156     NaN
4     E    172    70.0
5     F    168    68.0
6     G    155    55.0
7     H    156     NaN
8     I    167    80.0
9     J    177    80.0
10    K    168    70.0
11    L    NaN    58.0
12    M    141    50.0</code></pre>
<p>&nbsp;</p>
<h3>欠損値を平均値で置換する</h3>
<p>単位を削除することができたので、次は欠損値の処理を行っていきます</p>
<p>欠損値の処理は「fillna」で置換することができます</p>
<pre class="language-python"><code>df.Height = df.Height.fillna(df.Height.mean())
df.weight = df.weight.fillna(df.weight.mean())
print(df)

&gt;&gt;&gt;出力結果

   Name Height  weight
0     A    172    72.0
1     B    171    71.0
2     C    168    62.0
3     D    156    51.2
4     E    172    70.0
5     F    168    68.0
6     G    155    55.0
7     H    156    51.2
8     I    167    80.0
9     J    177    80.0
10    K    168    70.0
11    L    151    58.0
12    M    141    50.0</code></pre>
<h3>欠損値を削除する</h3>
<p>欠損値の削除は「dropna()」を使用すれば可能です</p>
<pre class="language-python"><code>print(df.dropna(how="any"))

&gt;&gt;&gt;出力結果

   Name Height  weight
0     A    172    72.0
1     B    171    71.0
2     C    168    62.0
3     E    172    70.0
4     F    168    68.0
5     G    155    55.0
6     I    167    80.0
7     J    177    80.0
8     K    168    70.0
9     M    141    50.0</code></pre>
<p><strong>how=&#8221;any&#8221;では欠損ちが一つでも含まれる行・列を削除することになります</strong></p>
<p><strong>how=&#8221;all&#8221;では、すべての値が欠損値である行・列が削除されることになります</strong></p>
<p>詳しくはpandasのreferenceを参照してください</p>
<p><a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.html">pandas.DataFrame.dropna</a></p>
<h2>まとめ</h2>
<img decoding="async" class="alignnone size-large wp-image-741" src="https://python-man.club/wp-content/uploads/2022/12/mylene-tremoyet-Da0pdCekeUs-unsplash-1024x1024.jpg" alt="python データ分析 まとめ" width="1024" height="1024" srcset="https://python-man.club/wp-content/uploads/2022/12/mylene-tremoyet-Da0pdCekeUs-unsplash-1024x1024.jpg 1024w, https://python-man.club/wp-content/uploads/2022/12/mylene-tremoyet-Da0pdCekeUs-unsplash-300x300.jpg 300w, https://python-man.club/wp-content/uploads/2022/12/mylene-tremoyet-Da0pdCekeUs-unsplash-150x150.jpg 150w, https://python-man.club/wp-content/uploads/2022/12/mylene-tremoyet-Da0pdCekeUs-unsplash-768x768.jpg 768w, https://python-man.club/wp-content/uploads/2022/12/mylene-tremoyet-Da0pdCekeUs-unsplash-1536x1536.jpg 1536w, https://python-man.club/wp-content/uploads/2022/12/mylene-tremoyet-Da0pdCekeUs-unsplash.jpg 1920w, https://python-man.club/wp-content/uploads/2022/12/mylene-tremoyet-Da0pdCekeUs-unsplash-1024x1024.jpg 856w" sizes="(max-width: 1024px) 100vw, 1024px" />
<ul>
<li><strong>データ分析の前処理はめちゃくちゃ大事</strong></li>
<li><strong>前処理を怠ると結果が大きく異なる</strong></li>
<li><strong>面倒なことはpythonに任せよう</strong></li>
</ul>
<div class="concept-box5">
<p style="text-align: center;"><span style="font-size: 20px;"><strong>おすすめプログラミングスクール(無料体験あり)<br />
</strong></span></p>
<p><span class="color-button01-big"><a href="https://px.a8.net/svt/ejp?a8mat=3N3XRP+DXB0WQ+3XAE+5Z6WY">Webスキルのパーソナルジム【WEBCAMP】</a></span><img decoding="async" src="https://www15.a8.net/0.gif?a8mat=3N3XRP+DXB0WQ+3XAE+5Z6WY" alt="" width="1" height="1" border="0" /></p>
<p style="text-align: center;">WEBCAMPを徹底解説している記事はこちら</p>
<a href="https://python-man.club/python_webcamp/" class="blog-card"><div class="blog-card-hl-box"><i class="jic jin-ifont-post"></i><span class="blog-card-hl"></span></div><div class="blog-card-box"><div class="blog-card-thumbnail"><img decoding="async" src="https://python-man.club/wp-content/uploads/2022/02/今年のうちに読むべき書籍-3-320x180.jpg" class="blog-card-thumb-image wp-post-image" alt="pythonコースを利用できるWEBCAMPを徹底解説【無料体験あり】" width ="162" height ="91" /></div><div class="blog-card-content"><span class="blog-card-title">pythonコースを利用できるWEBCAMPを徹底解説【無料体験あり】</span><span class="blog-card-excerpt">pythonを学ぶことができる「WECAMP」ですが、実際はどうなのでしょうか？webcampで本当にpythonを学ぶことができるのか・案件をとることができるのか、などpythonを初めて学ぶ方は不安に思うと思います。そこで、この記事ではpythonを学ぶことができるwebcampについて徹底解説していきます...</span></div></div></a>
<p><span class="color-button01-big"><a href="https://px.a8.net/svt/ejp?a8mat=3N3XRP+DXWGII+4HUE+5YJRM">AIを学ぶならアイデミープレミアム</a></span></p>
<p style="text-align: center;">アイデミープレミアムを徹底解説している記事はこちら</p>
<a href="https://python-man.club/python_aidemy_premium/" class="blog-card"><div class="blog-card-hl-box"><i class="jic jin-ifont-post"></i><span class="blog-card-hl"></span></div><div class="blog-card-box"><div class="blog-card-thumbnail"><img decoding="async" src="https://python-man.club/wp-content/uploads/2022/02/7-320x180.jpg" class="blog-card-thumb-image wp-post-image" alt="Python アイデミープレミアム" width ="162" height ="91" /></div><div class="blog-card-content"><span class="blog-card-title">pythonが学べるアイデミープレミアムを徹底解説【無料体験あり】</span><span class="blog-card-excerpt">アイデミープレミアムはpythonに特化したプログラミングスクールです。pythonを学ぼうと思った方は、一度は聞いたことがあるのではないでしょうか。今回はアイデミープレミアムで学ぶことで、エンジニア業界の戦力になれるのか、しっかりとpythonを学ぶことができるのかについて、徹底解説していきます...</span></div></div></a>
<p><span class="color-button01-big"><a href="https://px.a8.net/svt/ejp?a8mat=3HOST7+30CXNE+3GWO+6IWSI">pythonコース【テックアカデミー】</a></span><img decoding="async" src="https://www15.a8.net/0.gif?a8mat=3N3XRP+DXB0WQ+3XAE+5Z6WY" alt="" width="1" height="1" border="0" /></p>
<p style="text-align: center;">テックアカデミーを徹底解説している記事はこちら</p>
<a href="https://python-man.club/python_techacademy/" class="blog-card"><div class="blog-card-hl-box"><i class="jic jin-ifont-post"></i><span class="blog-card-hl"></span></div><div class="blog-card-box"><div class="blog-card-thumbnail"><img decoding="async" src="https://python-man.club/wp-content/uploads/2022/02/今年のうちに読むべき書籍-4-320x180.jpg" class="blog-card-thumb-image wp-post-image" alt="pythonが学べるテックアカデミーを徹底解説【無料体験あり】" width ="162" height ="91" /></div><div class="blog-card-content"><span class="blog-card-title">pythonが学べるテックアカデミーを徹底解説【無料体験あり】</span><span class="blog-card-excerpt">今回の記事では、

pythonを扱えるようになりたい
pythonを学んでエンジニアになりたい
テックアカデミーってよく聞くけ...</span></div></div></a>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://python-man.club/python_data_processing_pretreatment/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>python pandasのデータ分析でできること〜サンプルコード付き〜</title>
		<link>https://python-man.club/python_pandas_data_analytics/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=python_pandas_data_analytics</link>
					<comments>https://python-man.club/python_pandas_data_analytics/#respond</comments>
		
		<dc:creator><![CDATA[syou0445]]></dc:creator>
		<pubDate>Tue, 28 Dec 2021 15:54:16 +0000</pubDate>
				<category><![CDATA[pandas]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[データ分析]]></category>
		<category><![CDATA[python pandas データ分析]]></category>
		<guid isPermaLink="false">https://python-man.club/?p=565</guid>

					<description><![CDATA[pythonのpandasを使用して、データ分析のために前処理を行うことがあります 前処理を行うことでデータの質を高めることができ、より良い結果を得ることができます そのため、データ分析の約8割は前処理で決定されるといっ]]></description>
										<content:encoded><![CDATA[<p>pythonのpandasを使用して、データ分析のために前処理を行うことがあります</p>
<p><strong>前処理を行うことでデータの質を高めることができ、より良い結果を得ることができます</strong></p>
<p>そのため、<strong><span class="marker2">データ分析の約8割は前処理で決定されるといっても過言ではありません</span></strong></p>
<p>今回の記事では、pandasを使用したデータ分析でできることについて解説していきたいと思います</p>
<div class="simple-box3">
<p style="text-align: center;"><strong>pythonのpandasでデータ分析をしたいけど、何ができるのか知りたい</strong></p>
<p style="text-align: center;"><strong>pythonのpandasでデータ分析を行う流れを、ざっくりと知りたい</strong></p>
</div>
<p style="text-align: center;">こんな疑問にお答えします</p>
<p><span style="background-color: #ffff99;"><strong>pandasについて理解ができたら、実際にデータ分析・機械学習を実装していきましょう</strong></span></p>
<p><strong><a href="https://python-man.club/data_analytics/">Pythonでデータ分析を始めよう！挫折しない実践ガイドでスキルアップ</a></strong></p>
<p><strong><a href="https://python-man.club/python_machinelearning/">Pythonで機械学習に学んで実装してみよう【サンプルコードあり】</a></strong></p>
<h2>pandasの初期設定</h2>
<p>まずはpandasを使用するための初期設定を行なっていきます</p>
<p>pandasを使うには、Anacondaの利用が便利です</p>
<h3>Anacondaのインストール</h3>
<p>Anacondaのインストールは簡単に行うことができるので、以下の記事を見つつ、進めていけばOKです</p>
<a href="https://python-man.club/python_anaconda/" class="blog-card"><div class="blog-card-hl-box"><i class="jic jin-ifont-post"></i><span class="blog-card-hl"></span></div><div class="blog-card-box"><div class="blog-card-thumbnail"><img decoding="async" src="https://python-man.club/wp-content/uploads/2021/08/アイキャッチ用-320x180.jpg" class="blog-card-thumb-image wp-post-image" alt="anacondaの構築方法" width ="162" height ="91" /></div><div class="blog-card-content"><span class="blog-card-title">Pythonの環境構築〜Anacondaとは？〜サンプルコードと図解付き</span><span class="blog-card-excerpt">Pythonの環境構築を調べると、「Anaconda」という文字を見かけるかと思います。
僕も最初はよくわからなくて、とりあえずwebサイトに書いてある通りに進めていきました。
そのおかげもあり、3回ほど環境構築で挫折をしました。
現在はAnacondaを使ってpythonの学習を進めています。
なので、今回はAnacondaの環境構築について解説をしていこうと思います。
この記事を読んでいるかたが迷子にならないように、画像付きで解説していこうと思いますので、最後までお付き合いください。...</span></div></div></a>
<h3>ライブラリのインポート</h3>
<p>Anacondaのインストールが完了したら、コードを打っていきます</p>
<p>pandasのライブラリをインポートするのは、以下のコード</p>
<pre class="language-python"><code>import pandas as pd</code></pre>
<p>「as」というのは、pandasを「pd」という名称で使いますよ、というおまじないです</p>
<p>これでpythonでpandasを使用することが可能です</p>
<h2>データ分析を行うデータの読み込み</h2>
<p>pandasを使用する準備ができたら、データを読み込んでいきます</p>
<p>今回は3種類のデータについて読み込み方法を解説します</p>
<h3>csvファイル</h3>
<p>pandasでcsvファイルを読み込む場合には、「read_csv」を使用します</p>
<pre class="language-python"><code>import pandas as pd

#csvファイルの読み込み.csvファイルは該当ファイルのパス名をコピペすればOK
file=pd.read_csv("XXXXX.csv")</code></pre>
<p>read_csvのオプションは以下です</p>
<table style="border-collapse: collapse; width: 100%;" border="1">
<tbody>
<tr>
<td style="width: 50%;">引数</td>
<td style="width: 50%;">説明</td>
</tr>
<tr>
<td style="width: 50%;">encoding==&#8217;cp932またはUTF-8&#8242;</td>
<td style="width: 50%;">セルに日本語が含まれている場合、必須</td>
</tr>
<tr>
<td style="width: 50%;">header=None</td>
<td style="width: 50%;">先頭行をカラムとして取り込みたくないときに使う</td>
</tr>
<tr>
<td style="width: 50%;">dtype=&#8217;object&#8217;</td>
<td style="width: 50%;">すべてのセルを『文字列』として取り込む</td>
</tr>
<tr>
<td style="width: 50%;">names=&#8217;リストまたはタプル&#8217;</td>
<td style="width: 50%;">任意のカラム名を設定する</td>
</tr>
<tr>
<td style="width: 50%;">sep=&#8217;\t&#8217;</td>
<td style="width: 50%;">TXTファイルを読み込む</td>
</tr>
</tbody>
</table>
<p>「sep=&#8217;\t&#8217;」を入力すれば、txtファイルを読み込むこともできます</p>
<h3>excelファイル</h3>
<p>excelのファイルを読み込む場合には、read_excelを使用します</p>
<pre class="language-python"><code>import pandas as pd

#excelファイルの読み込み.excelファイルは該当ファイルのパス名をコピペすればOK
file=pd.read_excel("XXXXX.xlx",sheet_name='シート名')</code></pre>
<h3>googleスプレッドシート</h3>
<p>googleスプレッドシートで読み込むのは、やや煩雑ですが、以下でできます</p>
<pre class="language-python"><code>import json
import gspread # pip install gspread
from oauth2client.service_account import ServiceAccountCredentials # pip install oauth2client

scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
credentials = ServiceAccountCredentials.from_json_keyfile_name('秘密鍵のJSONファイルのdirパス', scope)
gc = gspread.authorize(credentials)
SPREADSHEET_KEY = 'スプレッドシートキー'
worksheet = gc.open_by_key(SPREADSHEET_KEY).worksheet('ワークシート名')

df = pd.DataFrame(worksheet.get_all_values())</code></pre>
<p>できるならば、あらかじめエクスポートしてから、csvファイルとして読み込むのがおすすめです</p>
<h2>読み込んだデータの確認</h2>
<p>ここからは読み込んだデータを確認していく作業を行なっていきます</p>
<p>今回はseabornに入っている、irisのデータを使用して、解説していきたいと思います</p>
<p>以下のコードでirisのデータをインポートすることができます</p>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")</code></pre>
<h3>データのチェック</h3>
<p>irisのデータがインポートされているかを確認します</p>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
print(iris)

&gt;&gt;&gt;出力結果
     sepal_length  sepal_width  petal_length  petal_width    species
0             5.1          3.5           1.4          0.2     setosa
1             4.9          3.0           1.4          0.2     setosa
2             4.7          3.2           1.3          0.2     setosa
3             4.6          3.1           1.5          0.2     setosa
4             5.0          3.6           1.4          0.2     setosa
..            ...          ...           ...          ...        ...
145           6.7          3.0           5.2          2.3  virginica
146           6.3          2.5           5.0          1.9  virginica
147           6.5          3.0           5.2          2.0  virginica
148           6.2          3.4           5.4          2.3  virginica
149           5.9          3.0           5.1          1.8  virginica

[150 rows x 5 columns]</code></pre>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#先頭5行を出力
print(iris.head())

&gt;&gt;&gt;出力結果
   sepal_length  sepal_width  petal_length  petal_width species
0           5.1          3.5           1.4          0.2  setosa
1           4.9          3.0           1.4          0.2  setosa
2           4.7          3.2           1.3          0.2  setosa
3           4.6          3.1           1.5          0.2  setosa
4           5.0          3.6           1.4          0.2  setosa</code></pre>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#最後から5行を出力
print(iris.tail())

&gt;&gt;&gt;出力結果
     sepal_length  sepal_width  petal_length  petal_width    species
145           6.7          3.0           5.2          2.3  virginica
146           6.3          2.5           5.0          1.9  virginica
147           6.5          3.0           5.2          2.0  virginica
148           6.2          3.4           5.4          2.3  virginica
149           5.9          3.0           5.1          1.8  virginica</code></pre>
<h3>欠損値の確認・処理</h3>
<p>pandasを使って欠損値を確認するには、「.isnull」を使用します</p>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#データの欠損値を確認する
print(iris.isnull())

&gt;&gt;&gt;出力結果
     sepal_length  sepal_width  petal_length  petal_width  species
0           False        False         False        False    False
1           False        False         False        False    False
2           False        False         False        False    False
3           False        False         False        False    False
4           False        False         False        False    False
..            ...          ...           ...          ...      ...
145         False        False         False        False    False
146         False        False         False        False    False
147         False        False         False        False    False
148         False        False         False        False    False
149         False        False         False        False    False

[150 rows x 5 columns]</code></pre>
<p>上記コードでは見にくいので、まとめていきます</p>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#欠損値をカラム名ごとにまとめて表示
print(iris.isnull().sum())

&gt;&gt;&gt;出力結果
sepal_length    0
sepal_width     0
petal_length    0
petal_width     0
species         0
dtype: int64</code></pre>
<p>今回のirisのデータでは、欠損値がないことがわかりました</p>
<p>欠損値が含まれていた場合には、以下のコードで対応していきます</p>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
# 欠損値がひとつでも含まれている行を削除する
iris.dropna()

# ある行のすべての値が欠損していたら、その行を削除する
iris.dropna(subset=['列名'], how='all')

# すべての欠損値を0で置換する
iris.fillna(0)</code></pre>
<h3>基本的な分析</h3>
<p>データの中身、欠損値の確認までできたので、次はデータ構成を確認していきます</p>
<h4>データ構成の確認</h4>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#データ構成を確認
print(iris.info())

&gt;&gt;&gt;出力結果
&lt;class 'pandas.core.frame.DataFrame'&gt;
RangeIndex: 150 entries, 0 to 149
Data columns (total 5 columns):
 #   Column        Non-Null Count  Dtype  
---  ------        --------------  -----  
 0   sepal_length  150 non-null    float64
 1   sepal_width   150 non-null    float64
 2   petal_length  150 non-null    float64
 3   petal_width   150 non-null    float64
 4   species       150 non-null    object 
dtypes: float64(4), object(1)
memory usage: 6.0+ KB</code></pre>
<h4>データサイズの確認</h4>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#行数と列数を確認
print(iris.shape)

&gt;&gt;&gt;出力結果
(150, 5)

#行数だけ確認
print(len(iris))

&gt;&gt;&gt;出力結果
150

#列数だけ確認
print(len(iris.columns))

&gt;&gt;&gt;出力結果
5</code></pre>
<h4>データの行名と列名を確認</h4>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#インデックスの確認
print(iris.index)

&gt;&gt;&gt;出力結果
RangeIndex(start=0, stop=150, step=1)

#カラム名の確認
print(iris.columns)

&gt;&gt;&gt;出力結果
Index(['sepal_length', 'sepal_width', 'petal_length', 'petal_width',
       'species'],
      dtype='object')</code></pre>
<h4>各列のデータの型を確認</h4>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#DataFrameのデータ型を確認
print(iris.dtypes)

&gt;&gt;&gt;出力結果
sepal_length    float64
sepal_width     float64
petal_length    float64
petal_width     float64
species          object
dtype: object</code></pre>
<h4>列で重複を含まない値を確認する(ユニークの確認)</h4>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#重複を含まない値を確認
print(iris['sepal_length'].unique())

&gt;&gt;&gt;出力結果
[5.1 4.9 4.7 4.6 5.  5.4 4.4 4.8 4.3 5.8 5.7 5.2 5.5 4.5 5.3 7.  6.4 6.9
 6.5 6.3 6.6 5.9 6.  6.1 5.6 6.7 6.2 6.8 7.1 7.6 7.3 7.2 7.7 7.4 7.9]</code></pre>
<h4>各列のユニークな値の出現頻度を確認</h4>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#出現頻度の確認
print(iris['sepal_length'].value_counts())

&gt;&gt;&gt;出力結果
5.0    10
6.3     9
5.1     9
5.7     8
6.7     8
5.8     7
5.5     7
6.4     7
4.9     6
6.0     6
5.4     6
5.6     6
6.1     6
6.5     5
4.8     5
6.2     4
5.2     4
7.7     4
6.9     4
4.6     4
7.2     3
5.9     3
4.4     3
6.8     3
6.6     2
4.7     2
7.1     1
7.4     1
7.6     1
7.9     1
4.5     1
7.0     1
5.3     1
7.3     1
4.3     1
Name: sepal_length, dtype: int64</code></pre>
<h3>読み込んだファイルの要約統計量を算出する</h3>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#出現頻度の確認
print(iris.describe())

&gt;&gt;&gt;出力結果
       sepal_length  sepal_width  petal_length  petal_width
count    150.000000   150.000000    150.000000   150.000000
mean       5.843333     3.057333      3.758000     1.199333
std        0.828066     0.435866      1.765298     0.762238
min        4.300000     2.000000      1.000000     0.100000
25%        5.100000     2.800000      1.600000     0.300000
50%        5.800000     3.000000      4.350000     1.300000
75%        6.400000     3.300000      5.100000     1.800000
max        7.900000     4.400000      6.900000     2.500000</code></pre>
<p>これで最大値や最小値、平均値などを一気に算出することが可能です</p>
<h3>データの可視化</h3>
<p>ここからはデータの可視化をしていきたいと思います</p>
<p>データの可視化はmatplotlibやseaborn、plotlyなどを使用すれば行うことができます</p>
<p>seabornが見た目が綺麗に可視化できるので、seabornを使用して解説をしていきたいと思います</p>
<pre class="language-python"><code>import pandas as pd
#seabornで可視化を行う
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")</code></pre>
<p>基本的にはseabornをインポートすれば、可視化を行うことができます</p>
<p>seabornを使用した可視化の詳細は以下の記事を参考にしてください</p>
<a href="https://python-man.club/visualization/" class="blog-card"><div class="blog-card-hl-box"><i class="jic jin-ifont-post"></i><span class="blog-card-hl"></span></div><div class="blog-card-box"><div class="blog-card-thumbnail"><img decoding="async" src="https://python-man.club/wp-content/uploads/2021/12/アイキャッチ用-1-320x180.jpg" class="blog-card-thumb-image wp-post-image" alt="python データ分析 可視化" width ="162" height ="91" /></div><div class="blog-card-content"><span class="blog-card-title">pythonでデータ分析から可視化まで行う【サンプルコード付き】</span><span class="blog-card-excerpt">pythonで統計学をかけたり、前処理などを行なっても、誰もがわかる状態にはなっていません。誰もが見ただけでわかるようにするためには「可視化」をする必要があります。今回の記事ではseabornを使用した可視化の方法について解説をしていきたいと思います。...</span></div></div></a>
<p>seabornを使用して、こんな感じの可視化を行なっていきます</p>
<div style="width: 1920px;" class="wp-video"><!--[if lt IE 9]><script>document.createElement('video');</script><![endif]--><br />
<video class="wp-video-shortcode" id="video-565-1" width="1920" height="1080" preload="metadata" controls="controls"><source type="video/mp4" src="https://python-man.club/wp-content/uploads/2021/12/pythonデータ分析可視化.mp4?_=1" /><a href="https://python-man.club/wp-content/uploads/2021/12/pythonデータ分析可視化.mp4">https://python-man.club/wp-content/uploads/2021/12/pythonデータ分析可視化.mp4</a></video></div>
<h2>データの選択・抽出</h2>
<p>ここからは、特定のデータを選択・抽出する方法について解説をしていきたいと思います</p>
<h3>直接指定</h3>
<h4>単一のデータを選択する</h4>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#単一のデータを選択する
print(iris['sepal_length'])

&gt;&gt;&gt;出力結果
0      5.1
1      4.9
2      4.7
3      4.6
4      5.0

145    6.7
146    6.3
147    6.5
148    6.2
149    5.9
Name: sepal_length, Length: 150, dtype: float64</code></pre>
<h4>複数のデータを選択する</h4>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#複数のデータを選択する
print(iris[['sepal_length','sepal_width']])

&gt;&gt;&gt;出力結果
     sepal_length  sepal_width
0             5.1          3.5
1             4.9          3.0
2             4.7          3.2
3             4.6          3.1
4             5.0          3.6
..            ...          ...
145           6.7          3.0
146           6.3          2.5
147           6.5          3.0
148           6.2          3.4
149           5.9          3.0

[150 rows x 2 columns]</code></pre>
<h3>条件指定</h3>
<p>条件指定では、pandasのquery()を使用していきます</p>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#sepal_lengthで5.1のデータだけを抽出
print(iris.query('sepal_length == 5.1'))

&gt;&gt;&gt;出力結果
    sepal_length  sepal_width  petal_length  petal_width     species
0            5.1          3.5           1.4          0.2      setosa
17           5.1          3.5           1.4          0.3      setosa
19           5.1          3.8           1.5          0.3      setosa
21           5.1          3.7           1.5          0.4      setosa
23           5.1          3.3           1.7          0.5      setosa
39           5.1          3.4           1.5          0.2      setosa
44           5.1          3.8           1.9          0.4      setosa
46           5.1          3.8           1.6          0.2      setosa
98           5.1          2.5           3.0          1.1  versicolor</code></pre>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#sepal_lengthで5.1のデータかつspeciesがversicolorのデータを抽出
print(iris.query('sepal_length == 5.1 &amp; species == "versicolor"'))

&gt;&gt;&gt;出力結果
    sepal_length  sepal_width  petal_length  petal_width     species
98           5.1          2.5           3.0          1.1  versicolor</code></pre>
<h3>ランダム指定</h3>
<p>元のデータからランダムでデータを抽出する場合には、sample()を使用します</p>
<pre class="language-markup"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#データを全体の50％の割合でランダム抽出する
print(iris.sample(frac=0.5,random_state=0))

&gt;&gt;&gt;出力結果
     sepal_length  sepal_width  petal_length  petal_width     species
114           5.8          2.8           5.1          2.4   virginica
62            6.0          2.2           4.0          1.0  versicolor
33            5.5          4.2           1.4          0.2      setosa
107           7.3          2.9           6.3          1.8   virginica
7             5.0          3.4           1.5          0.2      setosa
..            ...          ...           ...          ...         ...
111           6.4          2.7           5.3          1.9   virginica
95            5.7          3.0           4.2          1.2  versicolor
20            5.4          3.4           1.7          0.2      setosa
15            5.7          4.4           1.5          0.4      setosa
52            6.9          3.1           4.9          1.5  versicolor

[75 rows x 5 columns]</code></pre>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
#データを100個ランダム抽出する
print(iris.sample(n=100,random_state=0))

&gt;&gt;&gt;出力結果
     sepal_length  sepal_width  petal_length  petal_width     species
114           5.8          2.8           5.1          2.4   virginica
62            6.0          2.2           4.0          1.0  versicolor
33            5.5          4.2           1.4          0.2      setosa
107           7.3          2.9           6.3          1.8   virginica
7             5.0          3.4           1.5          0.2      setosa
..            ...          ...           ...          ...         ...
139           6.9          3.1           5.4          2.1   virginica
42            4.4          3.2           1.3          0.2      setosa
4             5.0          3.6           1.4          0.2      setosa
129           7.2          3.0           5.8          1.6   virginica
17            5.1          3.5           1.4          0.3      setosa

[100 rows x 5 columns]</code></pre>
<h2>データの整形</h2>
<h3>代表値の算出</h3>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
# 有効データのカウント数
print(iris['sepal_length'].count())

&gt;&gt;&gt;出力結果
150

# 合計値
print(iris['sepal_length'].sum())

&gt;&gt;&gt;出力結果
876.5

# 最小値
print(iris['sepal_length'].min())

&gt;&gt;&gt;出力結果
4.3

# 最大値
print(iris['sepal_length'].max())

&gt;&gt;&gt;出力結果
7.9

# 平均値
print(iris['sepal_length'].mean())

&gt;&gt;&gt;出力結果
5.843333333333335

# 中央値
print(iris['sepal_length'].median())

&gt;&gt;&gt;出力結果
5.8

# 最頻値
print(iris['sepal_length'].mode())

&gt;&gt;&gt;出力結果
0    5.0

# 標本分散
print(iris['sepal_length'].var())

&gt;&gt;&gt;出力結果
0.6856935123042505


# 標本標準偏差
print(iris['sepal_length'].std())

&gt;&gt;&gt;出力結果
0.8280661279778629</code></pre>
<h3>置換</h3>
<p>replaceを使って要素を置換する場合には、第一引数に元の要素の値、第二引数に置換後の値を指定します</p>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")

print(iris)
&gt;&gt;&gt;出力結果
     sepal_length  sepal_width  petal_length  petal_width    species
0             5.1          3.5           1.4          0.2     setosa
1             4.9          3.0           1.4          0.2     setosa
2             4.7          3.2           1.3          0.2     setosa
3             4.6          3.1           1.5          0.2     setosa
4             5.0          3.6           1.4          0.2     setosa
..            ...          ...           ...          ...        ...
145           6.7          3.0           5.2          2.3  virginica
146           6.3          2.5           5.0          1.9  virginica
147           6.5          3.0           5.2          2.0  virginica
148           6.2          3.4           5.4          2.3  virginica
149           5.9          3.0           5.1          1.8  virginica

#speciesの列でvirginicaというデータをsetosaに置換する
print(iris.replace('virginica','setosa'))
&gt;&gt;&gt;出力結果
     sepal_length  sepal_width  petal_length  petal_width species
0             5.1          3.5           1.4          0.2  setosa
1             4.9          3.0           1.4          0.2  setosa
2             4.7          3.2           1.3          0.2  setosa
3             4.6          3.1           1.5          0.2  setosa
4             5.0          3.6           1.4          0.2  setosa
..            ...          ...           ...          ...     ...
145           6.7          3.0           5.2          2.3  setosa
146           6.3          2.5           5.0          1.9  setosa
147           6.5          3.0           5.2          2.0  setosa
148           6.2          3.4           5.4          2.3  setosa
149           5.9          3.0           5.1          1.8  setosa</code></pre>
<h4>異なる複数の要素を一括で置換</h4>
<p>異なる複数の要素を一括で置換したい場合には、辞書もしくはリストを使って行います</p>
<p><strong>辞書で指定する場合には、第一引数に{元の値:置換後の値}の辞書を指定します</strong></p>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
print(iris)
&gt;&gt;&gt;出力結果
     sepal_length  sepal_width  petal_length  petal_width species
0             5.1          3.5           1.4          0.2  setosa
1             4.9          3.0           1.4          0.2  setosa
2             4.7          3.2           1.3          0.2  setosa
3             4.6          3.1           1.5          0.2  setosa
4             5.0          3.6           1.4          0.2  setosa
..            ...          ...           ...          ...     ...
145           6.7          3.0           5.2          2.3  setosa
146           6.3          2.5           5.0          1.9  setosa
147           6.5          3.0           5.2          2.0  setosa
148           6.2          3.4           5.4          2.3  setosa
149           5.9          3.0           5.1          1.8  setosa

#virginicaをsetosaに、3.5の値を0.0に置換
print(iris.replace({'virginica':'setosa',3.5:0.0}))
&gt;&gt;&gt;出力結果
     sepal_length  sepal_width  petal_length  petal_width species
0             5.1          0.0           1.4          0.2  setosa
1             4.9          3.0           1.4          0.2  setosa
2             4.7          3.2           1.3          0.2  setosa
3             4.6          3.1           1.5          0.2  setosa
4             5.0          3.6           1.4          0.2  setosa
..            ...          ...           ...          ...     ...
145           6.7          3.0           5.2          2.3  setosa
146           6.3          2.5           5.0          1.9  setosa
147           6.5          3.0           5.2          2.0  setosa
148           6.2          3.4           5.4          2.3  setosa
149           5.9          3.0           5.1          1.8  setosa</code></pre>
<p><strong>リストで置換する場合には、第一引数に元の値のリスト、第二引数に置換後の値のリストを指定します</strong></p>
<p>リストのサイズが一致していないとエラーになります</p>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
print(iris)
&gt;&gt;&gt;出力結果
     sepal_length  sepal_width  petal_length  petal_width species
0             5.1          3.5           1.4          0.2  setosa
1             4.9          3.0           1.4          0.2  setosa
2             4.7          3.2           1.3          0.2  setosa
3             4.6          3.1           1.5          0.2  setosa
4             5.0          3.6           1.4          0.2  setosa
..            ...          ...           ...          ...     ...
145           6.7          3.0           5.2          2.3  setosa
146           6.3          2.5           5.0          1.9  setosa
147           6.5          3.0           5.2          2.0  setosa
148           6.2          3.4           5.4          2.3  setosa
149           5.9          3.0           5.1          1.8  setosa

#virginicaをsetosaに、0.2の値を0.0に置換
print(iris.replace(['virginica',0.2],['setosa',0.0]))
&gt;&gt;&gt;出力結果
     sepal_length  sepal_width  petal_length  petal_width species
0             5.1          3.5           1.4          0.0  setosa
1             4.9          3.0           1.4          0.0  setosa
2             4.7          3.2           1.3          0.0  setosa
3             4.6          3.1           1.5          0.0  setosa
4             5.0          3.6           1.4          0.0  setosa
..            ...          ...           ...          ...     ...
145           6.7          3.0           5.2          2.3  setosa
146           6.3          2.5           5.0          1.9  setosa
147           6.5          3.0           5.2          2.0  setosa
148           6.2          3.4           5.4          2.3  setosa
149           5.9          3.0           5.1          1.8  setosa</code></pre>
<h3>削除</h3>
<p>データを削除するには「drop」を使用します</p>
<pre class="language-python"><code>import pandas as pd
import seaborn as sns
sns.set()

iris=sns.load_dataset("iris")
# 行の削除「行番号もしくは行名で指定」
# [inplace=True]：元のDataFrameを更新する。デフォルトはFalse
print(iris.drop(0))
&gt;&gt;&gt;出力結果
     sepal_length  sepal_width  petal_length  petal_width    species
1             4.9          3.0           1.4          0.2     setosa
2             4.7          3.2           1.3          0.2     setosa
3             4.6          3.1           1.5          0.2     setosa
4             5.0          3.6           1.4          0.2     setosa
5             5.4          3.9           1.7          0.4     setosa
..            ...          ...           ...          ...        ...
145           6.7          3.0           5.2          2.3  virginica
146           6.3          2.5           5.0          1.9  virginica
147           6.5          3.0           5.2          2.0  virginica
148           6.2          3.4           5.4          2.3  virginica
149           5.9          3.0           5.1          1.8  virginica

# 列の削除「列名で指定」
print(iris.drop('sepal_length', axis=1))
&gt;&gt;&gt;出力結果
     sepal_width  petal_length  petal_width    species
0            3.5           1.4          0.2     setosa
1            3.0           1.4          0.2     setosa
2            3.2           1.3          0.2     setosa
3            3.1           1.5          0.2     setosa
4            3.6           1.4          0.2     setosa
..           ...           ...          ...        ...
145          3.0           5.2          2.3  virginica
146          2.5           5.0          1.9  virginica
147          3.0           5.2          2.0  virginica
148          3.4           5.4          2.3  virginica
149          3.0           5.1          1.8  virginica</code></pre>
<p><span style="background-color: #ffff99;"><strong>pandasについて理解ができたら、実際にデータ分析・機械学習を実装していきましょう</strong></span></p>
<p><strong><a href="https://python-man.club/data_analytics/">Pythonでデータ分析を始めよう！挫折しない実践ガイドでスキルアップ</a></strong></p>
<p><strong><a href="https://python-man.club/python_machinelearning/">Pythonで機械学習に学んで実装してみよう【サンプルコードあり】</a></strong></p>
]]></content:encoded>
					
					<wfw:commentRss>https://python-man.club/python_pandas_data_analytics/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://python-man.club/wp-content/uploads/2021/12/pythonデータ分析可視化.mp4" length="0" type="video/mp4" />

			</item>
		<item>
		<title>Pythonのpandasについて【できることできないこと】</title>
		<link>https://python-man.club/python_pandas/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=python_pandas</link>
					<comments>https://python-man.club/python_pandas/#respond</comments>
		
		<dc:creator><![CDATA[syou0445]]></dc:creator>
		<pubDate>Fri, 24 Dec 2021 14:07:33 +0000</pubDate>
				<category><![CDATA[pandas]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[python pandas]]></category>
		<guid isPermaLink="false">https://python-man.club/?p=559</guid>

					<description><![CDATA[pythonで分析や統計をしたいと思っているけど、いまいちよくわからない Pythonで分析や統計を行う際にpandasでどういったことができるのか知りたい こんな疑問にお答えします pandasとは pythonのライ]]></description>
										<content:encoded><![CDATA[<div class="simple-box3">
<p style="text-align: center;"><strong>pythonで分析や統計をしたいと思っているけど、いまいちよくわからない</strong></p>
<p style="text-align: center;"><strong>Pythonで分析や統計を行う際にpandasでどういったことができるのか知りたい</strong></p>
</div>
<p style="text-align: center;">こんな疑問にお答えします</p>
<h2>pandasとは</h2>
<p>pythonのライブラリの一種で、データ解析の機能を有しています</p>
<blockquote><p>pandasは、プログラミング言語Pythonにおいて、データ解析を支援する機能を提供するライブラリである。</p>
<p>特に、数表および時系列データを操作するためのデータ構造と演算を提供する。</p>
<p>PandasはBSDライセンスのもとで提供されている。</p>
<p>wikipediaより</p></blockquote>
<p>pandasを使用する場面としては、</p>
<ul>
<li>統計処理</li>
<li>機械学習</li>
<li>深層学習</li>
</ul>
<p>上記の処理を行う前段階に行うことがほとんどです</p>
<p>そのため、pandasなどを使用した処理などのことを「<strong>データの前処理</strong>」と呼びます</p>
<p>統計や機械学習などのモデルを決定するのは、<strong>データの質</strong>であるため、この前処理を適当に行ってしまうと、とんでもない結果につながる可能性があります</p>
<p><strong>データの質は、データを適切に把握し、不要なデータを取り除いたり、必要なデータを精査する前処理を行うことで高めることができます</strong></p>
<p><strong><span class="marker2">データ分析の約8割は前処理で決定される</span></strong></p>
<p>とも言われているほど、前処理・データの質というものは重要になります</p>
<p>pandasの前処理について学ぶならこの書籍が一番です</p>
<div class="booklink-box" style="text-align: left; padding-bottom: 20px; font-size: small; zoom: 1; overflow: hidden;">
<div class="booklink-image" style="float: left; margin: 0 15px 10px 0;"><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_20211223110704154?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16221105%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener"><img decoding="async" style="border: none;" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/0672/9784798160672.jpg?_ex=200x200" /></a></div>
<div class="booklink-info" style="line-height: 120%; zoom: 1; overflow: hidden;">
<div class="booklink-name" style="margin-bottom: 10px; line-height: 120%;">
<p><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_20211223110704154?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16221105%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">現場で使える！pandasデータ前処理入門 機械学習・データサイエンスで役立つ前処理手法</a></p>
<div class="booklink-powered-date" style="font-size: 8pt; margin-top: 5px; font-family: verdana; line-height: 120%;">posted with <a href="https://yomereba.com" target="_blank" rel="nofollow noopener">ヨメレバ</a></div>
</div>
<div class="booklink-detail" style="margin-bottom: 5px;">株式会社ロンバート 翔泳社 2020年04月20日頃</div>
<div class="booklink-link2" style="margin-top: 10px;">
<div class="shoplinkrakuten" style="display: inline; margin-right: 5px;"><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_20211223110704154?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16221105%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">楽天ブックス</a></div>
<div class="shoplinkrakukobo" style="display: inline; margin-right: 5px;"><a href="http://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_20211223110704154?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frk%2Fb65c6602ad2f39458399f74e69a47af4%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">楽天kobo</a></div>
<div class="shoplinkamazon" style="display: inline; margin-right: 5px;"><a href="https://www.amazon.co.jp/exec/obidos/asin/4798160679/baseball0445-22/" target="_blank" rel="noopener">Amazon</a></div>
<div class="shoplinkkindle" style="display: inline; margin-right: 5px;"><a href="https://www.amazon.co.jp/gp/search?keywords=%E7%8F%BE%E5%A0%B4%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B%EF%BC%81pandas%E3%83%87%E3%83%BC%E3%82%BF%E5%89%8D%E5%87%A6%E7%90%86%E5%85%A5%E9%96%80%20%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%83%BB%E3%83%87%E3%83%BC%E3%82%BF%E3%82%B5%E3%82%A4%E3%82%A8%E3%83%B3%E3%82%B9%E3%81%A7%E5%BD%B9%E7%AB%8B%E3%81%A4%E5%89%8D%E5%87%A6%E7%90%86%E6%89%8B%E6%B3%95&amp;__mk_ja_JP=%83J%83%5E%83J%83i&amp;url=node%3D2275256051&amp;tag=baseball0445-22" target="_blank" rel="noopener">Kindle</a></div>
</div>
</div>
<div class="booklink-footer" style="clear: left;"></div>
</div>
<h3>pandasで出来ること</h3>
<p>pandasを使用することで以下のようなことが可能となります</p>
<ul>
<li>データの読み込みや統計量の表示</li>
<li>グラフ化</li>
<li>データ分析</li>
</ul>
<p>さらに細かく分けると以下のようなことが可能です</p>
<p><strong>データの読込</strong></p>
<ul>
<li>CSV形式のデータの読込：read_csv()</li>
<li>Excelファイルの読込：read_excel()</li>
<li>JSON文字列の読込：read_json()</li>
<li>pickle形式(Pythonオブジェクトを保存する形式)によるデータの読込/書込：read_pickle()、to_pickle()</li>
<li>インターネット上で提供されている株価情報の読込：pandas-datareader</li>
</ul>
<p><strong>データの特徴を把握</strong></p>
<ul>
<li>データの特徴を表示：DataFrame.info()</li>
<li>要約統計量を表示：DataFrame.describe()</li>
<li>データの一部を表示：DataFrame.head()、DataFrame.tail()</li>
<li>データの形状を表示：DataFrame.shape</li>
<li>行数を取得：DataFrame.index.values</li>
<li>列名を取得：DataFrame.columns.values</li>
<li>それぞれの列の型を取得：DataFrame.dtypes</li>
</ul>
<p><strong>データの切り出し（スライス）</strong></p>
<ul>
<li>データのスライス：DataFrame[]、DataFrame.iloc[]、DataFrame.loc[]</li>
<li>フィルタリング：DataFrame.query()</li>
</ul>
<p><strong>データの並べ替え</strong></p>
<ul>
<li>値による並べ替え：DataFrame.sort_values()</li>
<li>インデックスによる並べ替え：DataFrame.sort_index()</li>
<li>列名の変更：DataFrame.rename()</li>
</ul>
<p><strong>集計</strong></p>
<ul>
<li>列の集計：DataFrame.value_counts()</li>
<li>表の集計：DataFrame.groupby()</li>
<li>※groupby().sum()で合計、groupby().mean()で平均値得ることができる</li>
</ul>
<p><strong>可視化</strong></p>
<p>Matplotlibのimportが必要</p>
<ul>
<li>ヒストグラム：DataFrame.hist()</li>
<li>散布図、線グラフ：DataFrame.plot()</li>
<li>棒グラフ：DataFrame.bar()</li>
<li>箱ひげ図：DataFrame.boxplot()</li>
</ul>
<p><strong>欠損値の扱い</strong></p>
<ul>
<li>欠損値の確認：DataFrame.isnull().sum()</li>
<li>欠損値に値を埋める：DataFrame.fillna()</li>
<li>欠損値のある行を削除する：DataFrame.dropna()</li>
</ul>
<p><strong>その他</strong></p>
<ul>
<li>カテゴリー変数の展開：get_dummies()</li>
<li>列同士の相関を確認：DataFrame.corr()</li>
</ul>
<p><strong>上記以外のことはpandasではできないと思います</strong></p>
<h3>ライブラリについて</h3>
<p>pandasはデータ解析の機能を有しているライブラリですが、ライブラリというのは「ある機能のために複数のものを一つにまとめたパッケージ」みたいなものです</p>
<p>以下の記事で詳細に解説しているので、参考にしてください</p>
<a href="https://python-man.club/external_library/" class="blog-card"><div class="blog-card-hl-box"><i class="jic jin-ifont-post"></i><span class="blog-card-hl"></span></div><div class="blog-card-box"><div class="blog-card-thumbnail"><img decoding="async" src="https://python-man.club/wp-content/uploads/2021/08/アイキャッチ用-1-320x180.jpg" class="blog-card-thumb-image wp-post-image" alt="Pythonの外部ライブラリについて(インストール方法から更新・アンインストールまで)" width ="162" height ="91" /></div><div class="blog-card-content"><span class="blog-card-title">Pythonの外部ライブラリについて(インストール方法から更新・アンインストールまで)</span><span class="blog-card-excerpt">Pythonにはライブラリと呼ばれる、いくつかのパッケージを一つにまとめたものがあります。
これを使用することで、グラフを書いたり、統計解析を行なったりすることが可能になっています
ライブラリには標準ライブラリと外部ライブラリが用意されていますが、
この記事では、Pythonの外部ライブラリについて詳しく解説していきたいと思います...</span></div></div></a>
<h3>pandas以外のライブラリについて</h3>
<p>pandas以外にもデータ分析・解析を行うことができるライブラリはあります</p>
<ul>
<li><strong>numpy</strong></li>
<li><strong>matplotlib</strong></li>
<li><strong>Scipy</strong></li>
<li><strong>scikit-learn</strong></li>
</ul>
<p>それぞれ特徴が変わりますので、必要に応じたライブラリを選択する必要があります</p>
<p>基本的なデータ分析・解析などはpandasで十分だと思います</p>
<h3>pandasのメリット</h3>
<p>pandasは、基本的にexcelでできることはできます</p>
<p>しかし、繰り返し同じような作業を行う場合には、excelでは難しく、pythonなどのプログラミング言語が必要となってきます</p>
<p><strong>膨大なデータで同じような作業を半自動で行ってくれるのが、pandasを使用する最大のメリットです</strong></p>
<p>また、matplotlibやseabornを一緒に使えば、データの可視化まで簡単に行うことが可能です</p>
<h3>pandasのデメリット</h3>
<p>pandasのデメリットとしては、これまで使用したことがない場合には、コードを学ばなくてはいけない、という点があります</p>
<p>その点に関しては、以下の記事で解説をしているので、記事通り進めていけば、データの前処理〜統計〜可視化まで可能です</p>
<a href="https://python-man.club/python_stastics/" class="blog-card"><div class="blog-card-hl-box"><i class="jic jin-ifont-post"></i><span class="blog-card-hl"></span></div><div class="blog-card-box"><div class="blog-card-thumbnail"><img decoding="async" src="https://python-man.club/wp-content/uploads/2021/10/アイキャッチ用-6-320x180.jpg" class="blog-card-thumb-image wp-post-image" alt="python 統計学" width ="162" height ="91" /></div><div class="blog-card-content"><span class="blog-card-title">pythonで統計学を学ぶメリット〜実際の学習手順を紹介〜</span><span class="blog-card-excerpt">近年、データサイエンティストの需要が高まってきていますが、データサイエンティスト必須能力として、「プログラミング言語」「統計学」が挙げられています。pythonで統計学を扱えれば、データサイエンティストとしての道も開けるでしょう。今回はpythonで統計学を学ぶメリットや実際にどのように学習していくべきかを解説していきたいと思います。...</span></div></div></a>
<h2>pandasの使い方</h2>
<p>では実際にpandasを使っていきたいと思います</p>
<p>pandasを使うには、Anacondaの利用が便利です</p>
<h3>Anacondaのインストール</h3>
<p>Anacondaのインストールは簡単に行うことができるので、以下の記事を見つつ、進めていけばOKです</p>
<a href="https://python-man.club/python_anaconda/" class="blog-card"><div class="blog-card-hl-box"><i class="jic jin-ifont-post"></i><span class="blog-card-hl"></span></div><div class="blog-card-box"><div class="blog-card-thumbnail"><img decoding="async" src="https://python-man.club/wp-content/uploads/2021/08/アイキャッチ用-320x180.jpg" class="blog-card-thumb-image wp-post-image" alt="anacondaの構築方法" width ="162" height ="91" /></div><div class="blog-card-content"><span class="blog-card-title">Pythonの環境構築〜Anacondaとは？〜サンプルコードと図解付き</span><span class="blog-card-excerpt">Pythonの環境構築を調べると、「Anaconda」という文字を見かけるかと思います。
僕も最初はよくわからなくて、とりあえずwebサイトに書いてある通りに進めていきました。
そのおかげもあり、3回ほど環境構築で挫折をしました。
現在はAnacondaを使ってpythonの学習を進めています。
なので、今回はAnacondaの環境構築について解説をしていこうと思います。
この記事を読んでいるかたが迷子にならないように、画像付きで解説していこうと思いますので、最後までお付き合いください。...</span></div></div></a>
<h3>ライブラリのインポート</h3>
<p>Anacondaのインストールが完了したら、コードを打っていきます</p>
<p>pandasのライブラリをインポートするのは、以下のコード</p>
<pre class="language-python"><code>import pandas as pd</code></pre>
<p>「as」というのは、pandasを「pd」という名称で使いますよ、というおまじないです</p>
<h3>seriesについて</h3>
<p>pandasには「<strong>series</strong>」と「<strong>DataFrame</strong>」の2種類があります</p>
<p>seriesはデータが1対1の関係になっているものを指します</p>
<img decoding="async" class="alignnone size-full wp-image-525" src="https://python-man.club/wp-content/uploads/2021/12/スクリーンショット-2021-12-20-0.50.47.png" alt="pandas概要" width="1011" height="572" srcset="https://python-man.club/wp-content/uploads/2021/12/スクリーンショット-2021-12-20-0.50.47.png 1011w, https://python-man.club/wp-content/uploads/2021/12/スクリーンショット-2021-12-20-0.50.47-300x170.png 300w, https://python-man.club/wp-content/uploads/2021/12/スクリーンショット-2021-12-20-0.50.47-768x435.png 768w, https://python-man.club/wp-content/uploads/2021/12/スクリーンショット-2021-12-20-0.50.47-320x180.png 320w, https://python-man.club/wp-content/uploads/2021/12/スクリーンショット-2021-12-20-0.50.47.png 856w" sizes="(max-width: 1011px) 100vw, 1011px" />
<h3>DataFrameについて</h3>
<p>DataFrameとは、表計算ソフトのように、行と列で表現されます</p>
<p>基本的にcsvなどのファイルを読み込んだ際には、DataFrameになっています</p>
<p>そのため、ほとんどの場合には、このDataFrameを利用することになるため、理解を深めておくことは大切になります</p>
<h3>pandasてcsvファイルを読み込む</h3>
<p>実際にpandasでcsvファイルを読み込んで中身を確認していきます</p>
<pre class="language-python"><code>import pandas as pd

file=pd.read_csv("XXXXX.csv")
print(file)</code></pre>
<p>csvのファイルは該当ファイルのパス名をコピペすればOKです</p>
<h3>読み込んだファイルの要約統計量を算出する</h3>
<p>csvファイルを読み込んだら、要約統計量を算出してみましょう</p>
<pre class="language-python"><code>import pandas as pd

file=pd.read_csv("XXXXX.csv")
print(file.describe())</code></pre>
<p>これで最大値や最小値、平均値などを一気に算出することが可能です</p>
<p>より詳しい解説は以下の記事で行っているので、そちらも参考に進めてみてください</p>
<a href="https://python-man.club/pandas_describ/" class="blog-card"><div class="blog-card-hl-box"><i class="jic jin-ifont-post"></i><span class="blog-card-hl"></span></div><div class="blog-card-box"><div class="blog-card-thumbnail"><img decoding="async" src="https://python-man.club/wp-content/uploads/2021/10/アイキャッチ用-4-320x180.jpg" class="blog-card-thumb-image wp-post-image" alt="python 統計学 要約統計量" width ="162" height ="91" /></div><div class="blog-card-content"><span class="blog-card-title">【pythonで統計学】pandasを使って要約統計量を算出する方法〜サンプルコード付き〜</span><span class="blog-card-excerpt">研究を進めていると、最大値や平均値、中央値を算出する機会があります

この辺りはすぐに算出することができますが、四分位範囲や標準偏差...</span></div></div></a>
<h2>まとめ</h2>
<ul>
<li><strong>pandasを使えばデータ分析の前処理が行える</strong></li>
<li><strong>csvからデータを読み込むことも可能</strong></li>
<li><strong>要約統計量の算出が簡単にできる</strong></li>
</ul>
<h3>前処理のおすすめ参考書</h3>
<div class="booklink-box" style="text-align: left; padding-bottom: 20px; font-size: small; zoom: 1; overflow: hidden;">
<div class="booklink-image" style="float: left; margin: 0 15px 10px 0;"><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_20211224230206971?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16221105%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener"><img decoding="async" style="border: none;" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/0672/9784798160672.jpg?_ex=200x200" /></a></div>
<div class="booklink-info" style="line-height: 120%; zoom: 1; overflow: hidden;">
<div class="booklink-name" style="margin-bottom: 10px; line-height: 120%;">
<p><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_20211224230206971?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16221105%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">現場で使える！pandasデータ前処理入門 機械学習・データサイエンスで役立つ前処理手法</a></p>
<div class="booklink-powered-date" style="font-size: 8pt; margin-top: 5px; font-family: verdana; line-height: 120%;">posted with <a href="https://yomereba.com" target="_blank" rel="nofollow noopener">ヨメレバ</a></div>
</div>
<div class="booklink-detail" style="margin-bottom: 5px;">株式会社ロンバート 翔泳社 2020年04月20日頃</div>
<div class="booklink-link2" style="margin-top: 10px;">
<div class="shoplinkrakuten" style="display: inline; margin-right: 5px;"><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_20211224230206971?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16221105%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">楽天ブックス</a></div>
<div class="shoplinkrakukobo" style="display: inline; margin-right: 5px;"><a href="http://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_20211224230206971?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frk%2Fb65c6602ad2f39458399f74e69a47af4%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">楽天kobo</a></div>
<div class="shoplinkamazon" style="display: inline; margin-right: 5px;"><a href="https://www.amazon.co.jp/exec/obidos/asin/4798160679/baseball0445-22/" target="_blank" rel="noopener">Amazon</a></div>
<div class="shoplinkkindle" style="display: inline; margin-right: 5px;"><a href="https://www.amazon.co.jp/gp/search?keywords=%E7%8F%BE%E5%A0%B4%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B%EF%BC%81pandas%E3%83%87%E3%83%BC%E3%82%BF%E5%89%8D%E5%87%A6%E7%90%86%E5%85%A5%E9%96%80%20%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%83%BB%E3%83%87%E3%83%BC%E3%82%BF%E3%82%B5%E3%82%A4%E3%82%A8%E3%83%B3%E3%82%B9%E3%81%A7%E5%BD%B9%E7%AB%8B%E3%81%A4%E5%89%8D%E5%87%A6%E7%90%86%E6%89%8B%E6%B3%95&amp;__mk_ja_JP=%83J%83%5E%83J%83i&amp;url=node%3D2275256051&amp;tag=baseball0445-22" target="_blank" rel="noopener">Kindle</a></div>
</div>
</div>
<div class="booklink-footer" style="clear: left;"></div>
</div>
<div class="booklink-box" style="text-align: left; padding-bottom: 20px; font-size: small; zoom: 1; overflow: hidden;">
<div class="booklink-image" style="float: left; margin: 0 15px 10px 0;"><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202112242302319832?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16370705%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener"><img decoding="async" style="border: none;" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/4960/9784798164960.jpg?_ex=200x200" /></a></div>
<div class="booklink-info" style="line-height: 120%; zoom: 1; overflow: hidden;">
<div class="booklink-name" style="margin-bottom: 10px; line-height: 120%;">
<p><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202112242302319832?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16370705%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">Python2年生 データ分析のしくみ 体験してわかる！会話でまなべる！</a></p>
<div class="booklink-powered-date" style="font-size: 8pt; margin-top: 5px; font-family: verdana; line-height: 120%;">posted with <a href="https://yomereba.com" target="_blank" rel="nofollow noopener">ヨメレバ</a></div>
</div>
<div class="booklink-detail" style="margin-bottom: 5px;">森 巧尚 翔泳社 2020年08月21日頃</div>
<div class="booklink-link2" style="margin-top: 10px;">
<div class="shoplinkrakuten" style="display: inline; margin-right: 5px;"><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202112242302319832?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16370705%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">楽天ブックス</a></div>
<div class="shoplinkrakukobo" style="display: inline; margin-right: 5px;"><a href="http://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202112242302319832?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frk%2F16d718cb75ec3a87adb3ce9bfd446937%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">楽天kobo</a></div>
<div class="shoplinkamazon" style="display: inline; margin-right: 5px;"><a href="https://www.amazon.co.jp/exec/obidos/asin/4798164968/baseball0445-22/" target="_blank" rel="noopener">Amazon</a></div>
<div class="shoplinkkindle" style="display: inline; margin-right: 5px;"><a href="https://www.amazon.co.jp/gp/search?keywords=Python2%E5%B9%B4%E7%94%9F%20%E3%83%87%E3%83%BC%E3%82%BF%E5%88%86%E6%9E%90%E3%81%AE%E3%81%97%E3%81%8F%E3%81%BF%20%E4%BD%93%E9%A8%93%E3%81%97%E3%81%A6%E3%82%8F%E3%81%8B%E3%82%8B%EF%BC%81%E4%BC%9A%E8%A9%B1%E3%81%A7%E3%81%BE%E3%81%AA%E3%81%B9%E3%82%8B%EF%BC%81&amp;__mk_ja_JP=%83J%83%5E%83J%83i&amp;url=node%3D2275256051&amp;tag=baseball0445-22" target="_blank" rel="noopener">Kindle</a></div>
</div>
</div>
<div class="booklink-footer" style="clear: left;"></div>
</div>
<div class="booklink-box" style="text-align: left; padding-bottom: 20px; font-size: small; zoom: 1; overflow: hidden;">
<div class="booklink-image" style="float: left; margin: 0 15px 10px 0;"><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202112242302565859?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15535383%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener"><img decoding="async" style="border: none;" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8451/9784873118451.jpg?_ex=200x200" /></a></div>
<div class="booklink-info" style="line-height: 120%; zoom: 1; overflow: hidden;">
<div class="booklink-name" style="margin-bottom: 10px; line-height: 120%;">
<p><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202112242302565859?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15535383%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">Pythonによるデータ分析入門 第2版</a></p>
<div class="booklink-powered-date" style="font-size: 8pt; margin-top: 5px; font-family: verdana; line-height: 120%;">posted with <a href="https://yomereba.com" target="_blank" rel="nofollow noopener">ヨメレバ</a></div>
</div>
<div class="booklink-detail" style="margin-bottom: 5px;">Wes McKinney/瀬戸山 雅人 オライリー・ジャパン 2018年07月26日頃</div>
<div class="booklink-link2" style="margin-top: 10px;">
<div class="shoplinkrakuten" style="display: inline; margin-right: 5px;"><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202112242302565859?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15535383%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">楽天ブックス</a></div>
<div class="shoplinkamazon" style="display: inline; margin-right: 5px;"><a href="https://www.amazon.co.jp/exec/obidos/asin/487311845X/baseball0445-22/" target="_blank" rel="noopener">Amazon</a></div>
<div class="shoplinkkindle" style="display: inline; margin-right: 5px;"><a href="https://www.amazon.co.jp/gp/search?keywords=Python%E3%81%AB%E3%82%88%E3%82%8B%E3%83%87%E3%83%BC%E3%82%BF%E5%88%86%E6%9E%90%E5%85%A5%E9%96%80%20%E7%AC%AC2%E7%89%88&amp;__mk_ja_JP=%83J%83%5E%83J%83i&amp;url=node%3D2275256051&amp;tag=baseball0445-22" target="_blank" rel="noopener">Kindle</a></div>
</div>
</div>
<div class="booklink-footer" style="clear: left;"></div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://python-man.club/python_pandas/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【キーワード抽出可能】pythonのpandasで要素を抽出する方法(iloc,locなど)</title>
		<link>https://python-man.club/data-extraction/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=data-extraction</link>
					<comments>https://python-man.club/data-extraction/#comments</comments>
		
		<dc:creator><![CDATA[syou0445]]></dc:creator>
		<pubDate>Mon, 20 Dec 2021 15:35:36 +0000</pubDate>
				<category><![CDATA[pandas]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[python pandas 要素の抽出]]></category>
		<guid isPermaLink="false">https://python-man.club/?p=522</guid>

					<description><![CDATA[Pandasのデータフレームで任意の行・列を指定してデータを取得・変更する方法について解説していきます 機械学習やデータ分析の際には、前処理の段階で、条件にあう特定データの行・列を抽出する場合などに使用することが多いです]]></description>
										<content:encoded><![CDATA[<p>Pandasの<strong>データフレームで任意の行・列を指定してデータを取得・変更する方法</strong>について解説していきます</p>
<p>機械学習やデータ分析の際には、前処理の段階で、条件にあう特定データの行・列を抽出する場合などに使用することが多いです。</p>
<p>また、GUIとして、キーワードを入力しておき、csvを読みこませることで、そのキーワードに合致するデータ抽出の方法についても解説していきたいと思います。</p>
<p>完成のイメージはこんな感じです</p>
<p><a href="https://python-man.club/wp-content/uploads/2021/12/画面収録-2021-12-20-0.45.05.mov">pandasキーワード抽出</a></p>
<h2>pandasとは</h2>
<p>まずpandasについて簡単に説明を入れておきます</p>
<p>pandasというのは、pythonにおいて表形式になっており、データ分析を効率的に行うためのライブラリです</p>
<p>csvファイルなどの読み込み・集計・加工・可視化などが可能です</p>
<img decoding="async" class="alignnone size-full wp-image-525" src="https://python-man.club/wp-content/uploads/2021/12/スクリーンショット-2021-12-20-0.50.47.png" alt="pandas概要" width="1011" height="572" srcset="https://python-man.club/wp-content/uploads/2021/12/スクリーンショット-2021-12-20-0.50.47.png 1011w, https://python-man.club/wp-content/uploads/2021/12/スクリーンショット-2021-12-20-0.50.47-300x170.png 300w, https://python-man.club/wp-content/uploads/2021/12/スクリーンショット-2021-12-20-0.50.47-768x435.png 768w, https://python-man.club/wp-content/uploads/2021/12/スクリーンショット-2021-12-20-0.50.47-320x180.png 320w, https://python-man.club/wp-content/uploads/2021/12/スクリーンショット-2021-12-20-0.50.47.png 856w" sizes="(max-width: 1011px) 100vw, 1011px" />
<h2>pandasで要素を抽出する方法</h2>
<p>pandasで要素を抽出する方法は4種類です</p>
<ul>
<li><strong>loc:スライス表記で、ラベル名を指定(複数可能)</strong></li>
<li><strong>iloc：行もしくは列番号を指定(複数可能)</strong></li>
<li><strong>at:ラベル名を指定(単独)</strong></li>
<li><strong>iat:行もしくは列番号を指定(単独)</strong></li>
</ul>
<p>大きく分けると上記の4種類になります</p>
<p>処理速度は単独抽出の<strong>at,iat</strong>が速いです</p>
<p>まずはpandasでcsvファイルを読み込みます</p>
<pre class="language-python"><code>import pandas as pd

#pandasでcsvファイルの読み込み
file=pd.read_csv('XXXXXXX.csv',index_col=0)

#読み込んだcsvのインデックスとカラム名を出力
print(file.index.values)
print(file.columns.values)</code></pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<img decoding="async" class="wp-image-528 size-full" src="https://python-man.club/wp-content/uploads/2021/12/-2021-12-20-23.40.48-e1640011353729.png" alt="pandas要素の抽出例" width="484" height="373" />
<p style="text-align: center;">読み込んだcssvファイルの中身</p>
<img decoding="async" class="wp-image-529 size-full" src="https://python-man.club/wp-content/uploads/2021/12/-2021-12-20-23.40.48-1-e1640011512666.png" alt="csvのカラム名" width="485" height="44" />
<p style="text-align: center;">インデックスとカラム名</p>
<h3>at,iatで要素の抽出</h3>
<p>atはラベル名を指定します</p>
<p><a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.at.html">atのドキュメント</a></p>
<p>データ抽出だけではなく、その位置に新たな値を設定することも可能です</p>
<pre class="language-python"><code>import pandas as pd

#pandasでcsvファイルの読み込み
file=pd.read_csv('XXXXXXX.csv',index_col=0)

#AのhipflexROMを指定して出力
print(file.at['A','hipflexROM'])
&gt;&gt;&gt;95

#atを使用して、AのhipflexROMを95から120に書き換え
file.at['A','hipflexROM']=120

#再度AのhipflexROMを指定して出力
print(file.at['A','hipflexROM'])
&gt;&gt;&gt;120</code></pre>
<p>iatは行番号・列番号を指定して、要素を抽出します</p>
<p><a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.iat.html">iatのドキュメント</a></p>
<p>at同様、iatはデータ抽出だけではなく、その位置に新たな値を設定することも可能です</p>
<pre class="language-python"><code>import pandas as pd

#pandasでcsvファイルの読み込み
file=pd.read_csv('XXXXXXX.csv',index_col=0)

#iatを使用して、行番号・列番号を指定(1行目の0列目)して出力
print(file.iat[1,0])
&gt;&gt;&gt;100

#iatを使用して、新たな値120に書き換え
file.iat[1,0]=120

#再度iatを使用して、行番号・列番号を指定(1行目の0列目)して出力
print(file.iat[1,0])
&gt;&gt;&gt;120</code></pre>
<p>iatを使用する場合は、<strong>行番号・列番号ともに「0」始まり</strong></p>
<h3>loc,ilocを使用して単独もしくは複数の要素を抽出</h3>
<p>loc,ilocは単独だけではなく、複数の要素を抽出することも可能</p>
<p>locでは行名と列名で要素を指定します</p>
<p><a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.loc.html">locのドキュメント</a></p>
<p><a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.iloc.html">ilocのドキュメント</a></p>
<pre class="language-python"><code>import pandas as pd

#pandasでcsvファイルの読み込み
file=pd.read_csv('XXXXXXX.csv',index_col=0)

#locを使用して、行名・列名を指定して出力
print(file.loc['A','hipflexROM'])
&gt;&gt;&gt;95

#ilocを使用して、行番号・列番号を指定して出力(1行目・0列目)
print(file.iloc[1,0])
&gt;&gt;&gt;100

#locを使用して、AのhipflexROMを150に書き換え
file.loc['A','hipflex']=150

#再度locを使用して、行名・列名を指定して出力
print(file.loc['A','hipflexROM'])
&gt;&gt;&gt;150

#ilocを使用して、1行目の0列目を150に書き換え
file.iloc[1,0]=150

#再度ilocを使用して、行番号・列番号を指定して出力(1行目・0列目)
print(file.iloc[1,0])
&gt;&gt;&gt;150

#AからF行目までのhipflexROMを出力
print(file.loc['A':'F','hipflexROM'])
&gt;&gt;&gt;
ID
A     95
B    100
C    110
D     85
E     70
F     65

#0から3行目のhipflexROMからhipabdROMまでを出力
print(file.iloc[:3,[0,2]])
&gt;&gt;&gt;
    hipflexROM  hipabdROM
ID                       
A           95       15.0
B          100       15.0
C          110       10.0</code></pre>
<h4>複数の要素を抽出する方法</h4>
<p>複数の要素を抽出する場合には、</p>
<pre class="language-python"><code>#AからF行目までのhipflexROMを出力
print(file.loc['A':'F','hipflexROM'])

#0から3行目のhipflexROMからhipabdROMまでを出力
print(file.iloc[:3,[0,2]])
</code></pre>
<p>上記のようなスライス表現を用います</p>
<p>スライス表現では、<strong>start:stop:step</strong>の順に要素を指定して、抽出を行なっていきます</p>
<p><strong>ilocでスライス表現をする場合には、stepは省略になりますが、locを使用する場合にはstepまで記載しないとエラーになることもあります</strong></p>
<p>またリストでの表現でも可能です[a,b,c&#8230;]のように表現することでも、複数の要素を抽出することができます</p>
<h3>外部からキーワードを入力して要素を抽出する</h3>
<p>GUIに実装する場合などには、外部からキーワードを入力して、要素を抽出することも可能です</p>
<pre class="language-python"><code>import pandas as pd
import tkinter as tk
import os
from tkinter import filedialog 
from scipy import stats

root=tk.Tk() 
root.title("test")
root.geometry("800x600")

frame=tk.Frame()
frame.grid(row=0)
var=tk.StringVar()
var1=tk.StringVar()
text=tk.Entry(width=20,textvariable=var)
text.place(x=500,y=100)

listbox=tk.Listbox(frame,height=30,selectmode="single")
listbox.grid(row=1,column=1)

def fileselect():
    global var
    type = [("CSV file", "*.csv")]
    file_path = tk.filedialog.askopenfilename(filetypes = type, initialdir = os.getcwd ())  
    csv_file = pd.read_csv(file_path, engine="python", index_col=None)
    i = var.get()
    if i in csv_file.columns:
        word = csv_file.loc[:,i].values
        listbox.insert(tk.END,word)

    
Button=tk.Button(frame,text="selectfile",command=fileselect,width=20)
Button.grid(row=3,column=1)

root.mainloop()</code></pre>
<p>サンプルの動画ではボタンが2種類、リストボックスが2つになっていますが、<br />
こちらのサンプルコードでは、それぞれ1つずつに変更をしています</p>
<pre class="language-python"><code>    if i in csv_file.columns:
        word = csv_file.loc[:,i].values
        listbox.insert(tk.END,word)</code></pre>
<p>上記コードを増やせば、抽出する項目を増やすことも可能です</p>
<p>その際にはグローバル関数も増やし、<strong>i=var.get()も増やしておく必要</strong>がありますので、注意してください</p>
<p>もし、グローバル関数を使わずに実装することができた方がいたら、DMやコメントをもらえると嬉しいです！</p>
<h3>ixを使用した要素の抽出</h3>
<p>ixを使用することで、公式ドキュメントでは非推奨となっているため、割愛しました</p>
<p><a href="https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#ix-indexer-is-deprecated">公式ドキュメント</a></p>
<p>公式ドキュメントは英語で書かれていますが、Google Chromeでページを開けば、翻訳してくれますので、参考にしてみてください</p>
<p>また、Qiitaでは<a href="https://qiita.com/junjis0203/items/fbde15dbba5ccdb5dc4c">ixを使用した時の困った例</a>が挙げられています</p>
<h2>python参考書籍</h2>
<div class="booklink-box" style="text-align: left; padding-bottom: 20px; font-size: small; zoom: 1; overflow: hidden;">
<div class="booklink-image" style="float: left; margin: 0 15px 10px 0;"><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202111092254065631?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16221105%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener"><img decoding="async" style="border: none;" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/0672/9784798160672.jpg?_ex=200x200" /></a></div>
<div class="booklink-info" style="line-height: 120%; zoom: 1; overflow: hidden;">
<div class="booklink-name" style="margin-bottom: 10px; line-height: 120%;">
<p><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202111092254065631?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16221105%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">現場で使える！pandasデータ前処理入門 機械学習・データサイエンスで役立つ前処理手法</a></p>
<div class="booklink-powered-date" style="font-size: 8pt; margin-top: 5px; font-family: verdana; line-height: 120%;">posted with <a href="https://yomereba.com" target="_blank" rel="nofollow noopener">ヨメレバ</a></div>
</div>
<div class="booklink-detail" style="margin-bottom: 5px;">株式会社ロンバート 翔泳社 2020年04月20日頃</div>
<div class="booklink-link2" style="margin-top: 10px;">
<div class="shoplinkrakuten" style="display: inline; margin-right: 5px;"><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202111092254065631?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16221105%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">楽天ブックス</a></div>
<div class="shoplinkamazon" style="display: inline; margin-right: 5px;"><a href="https://www.amazon.co.jp/exec/obidos/asin/4798160679/baseball0445-22/" target="_blank" rel="noopener">Amazon</a></div>
<div class="shoplinkkindle" style="display: inline; margin-right: 5px;"><a href="https://www.amazon.co.jp/gp/search?keywords=%E7%8F%BE%E5%A0%B4%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B%EF%BC%81pandas%E3%83%87%E3%83%BC%E3%82%BF%E5%89%8D%E5%87%A6%E7%90%86%E5%85%A5%E9%96%80%20%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%83%BB%E3%83%87%E3%83%BC%E3%82%BF%E3%82%B5%E3%82%A4%E3%82%A8%E3%83%B3%E3%82%B9%E3%81%A7%E5%BD%B9%E7%AB%8B%E3%81%A4%E5%89%8D%E5%87%A6%E7%90%86%E6%89%8B%E6%B3%95&amp;__mk_ja_JP=%83J%83%5E%83J%83i&amp;url=node%3D2275256051&amp;tag=baseball0445-22" target="_blank" rel="noopener">Kindle</a></div>
</div>
</div>
<div class="booklink-footer" style="clear: left;"></div>
</div>
<div class="booklink-box" style="text-align: left; padding-bottom: 20px; font-size: small; zoom: 1; overflow: hidden;">
<div class="booklink-image" style="float: left; margin: 0 15px 10px 0;"><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202111092247311534?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15385339%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener"><img decoding="async" style="border: none;" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5067/9784798155067.jpg?_ex=200x200" /></a></div>
<div class="booklink-info" style="line-height: 120%; zoom: 1; overflow: hidden;">
<div class="booklink-name" style="margin-bottom: 10px; line-height: 120%;">
<p><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202111092247311534?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15385339%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">Pythonで学ぶあたらしい統計学の教科書</a></p>
<div class="booklink-powered-date" style="font-size: 8pt; margin-top: 5px; font-family: verdana; line-height: 120%;">posted with <a href="https://yomereba.com" target="_blank" rel="nofollow noopener">ヨメレバ</a></div>
</div>
<div class="booklink-detail" style="margin-bottom: 5px;">馬場 真哉 翔泳社 2018年04月19日頃</div>
<div class="booklink-link2" style="margin-top: 10px;">
<div class="shoplinkrakuten" style="display: inline; margin-right: 5px;"><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202111092247311534?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15385339%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">楽天ブックス</a></div>
<div class="shoplinkamazon" style="display: inline; margin-right: 5px;"><a href="https://www.amazon.co.jp/exec/obidos/asin/4798155063/baseball0445-22/" target="_blank" rel="noopener">Amazon</a></div>
<div class="shoplinkkindle" style="display: inline; margin-right: 5px;"><a href="https://www.amazon.co.jp/gp/search?keywords=Python%E3%81%A7%E5%AD%A6%E3%81%B6%E3%81%82%E3%81%9F%E3%82%89%E3%81%97%E3%81%84%E7%B5%B1%E8%A8%88%E5%AD%A6%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8&amp;__mk_ja_JP=%83J%83%5E%83J%83i&amp;url=node%3D2275256051&amp;tag=baseball0445-22" target="_blank" rel="noopener">Kindle</a></div>
</div>
</div>
</div>
<div class="booklink-box" style="text-align: left; padding-bottom: 20px; font-size: small; zoom: 1; overflow: hidden;">
<div class="booklink-image" style="float: left; margin: 0 15px 10px 0;"><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202112210032108146?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16814196%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener"><img decoding="async" style="border: none;" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/4390/9784798064390_1_2.jpg?_ex=200x200" /></a></div>
<div class="booklink-info" style="line-height: 120%; zoom: 1; overflow: hidden;">
<div class="booklink-name" style="margin-bottom: 10px; line-height: 120%;">
<p><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202112210032108146?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16814196%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">Python 実践データ加工/可視化 100本ノック</a></p>
<div class="booklink-powered-date" style="font-size: 8pt; margin-top: 5px; font-family: verdana; line-height: 120%;">posted with <a href="https://yomereba.com" target="_blank" rel="nofollow noopener">ヨメレバ</a></div>
</div>
<div class="booklink-detail" style="margin-bottom: 5px;">下山輝昌/伊藤淳二 秀和システム 2021年07月31日頃</div>
<div class="booklink-link2" style="margin-top: 10px;">
<div class="shoplinkrakuten" style="display: inline; margin-right: 5px;"><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202112210032108146?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16814196%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">楽天ブックス</a></div>
<div class="shoplinkrakukobo" style="display: inline; margin-right: 5px;"><a href="http://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202112210032108146?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frk%2Fccf5804d10b7397db5fda8975a26bf97%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">楽天kobo</a></div>
<div class="shoplinkamazon" style="display: inline; margin-right: 5px;"><a href="https://www.amazon.co.jp/exec/obidos/asin/4798064394/baseball0445-22/" target="_blank" rel="noopener">Amazon</a></div>
<div class="shoplinkkindle" style="display: inline; margin-right: 5px;"><a href="https://www.amazon.co.jp/gp/search?keywords=Python%20%E5%AE%9F%E8%B7%B5%E3%83%87%E3%83%BC%E3%82%BF%E5%8A%A0%E5%B7%A5%2F%E5%8F%AF%E8%A6%96%E5%8C%96%20100%E6%9C%AC%E3%83%8E%E3%83%83%E3%82%AF&amp;__mk_ja_JP=%83J%83%5E%83J%83i&amp;url=node%3D2275256051&amp;tag=baseball0445-22" target="_blank" rel="noopener">Kindle</a></div>
</div>
</div>
<div class="booklink-footer" style="clear: left;"></div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://python-man.club/data-extraction/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		<enclosure url="https://python-man.club/wp-content/uploads/2021/12/画面収録-2021-12-20-0.45.05.mov" length="0" type="video/quicktime" />

			</item>
		<item>
		<title>pandasのデータフレームから任意の行・列を抽出する〜サンプルコード付き〜</title>
		<link>https://python-man.club/select_dataframe/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=select_dataframe</link>
					<comments>https://python-man.club/select_dataframe/#comments</comments>
		
		<dc:creator><![CDATA[syou0445]]></dc:creator>
		<pubDate>Sat, 09 Oct 2021 19:10:21 +0000</pubDate>
				<category><![CDATA[pandas]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[python pandas 抽出]]></category>
		<guid isPermaLink="false">https://python-man.club/?p=311</guid>

					<description><![CDATA[Pythonでcsvデータを取り込んだ際、データフレームの形で取り込まれます 取り込んだデータから、特定のデータを抽出したい場合も多々あります 今回はデータフレームで取り込んだデータから、特定の行・列を抽出し、目的の形へ]]></description>
										<content:encoded><![CDATA[<p>Pythonでcsvデータを取り込んだ際、データフレームの形で取り込まれます</p>
<p>取り込んだデータから、特定のデータを抽出したい場合も多々あります</p>
<p>今回はデータフレームで取り込んだデータから、特定の行・列を抽出し、目的の形へと加工する方法について解説していきます</p>
<h2>データフレームとは</h2>
<p>データフレームとは、二次元の表形式データを指します</p>
<p>二次元データというのは1対複数の関係であるデータ形式のことを指しています</p>
<p><img decoding="async" class="alignnone size-large wp-image-298" src="https://python-man.club/wp-content/uploads/2021/10/E-IN5gOWUAQFjnf-1024x576.jpeg" alt="pandasの説明" width="1024" height="576" srcset="https://python-man.club/wp-content/uploads/2021/10/E-IN5gOWUAQFjnf-1024x576.jpeg 1024w, https://python-man.club/wp-content/uploads/2021/10/E-IN5gOWUAQFjnf-300x169.jpeg 300w, https://python-man.club/wp-content/uploads/2021/10/E-IN5gOWUAQFjnf-768x432.jpeg 768w, https://python-man.club/wp-content/uploads/2021/10/E-IN5gOWUAQFjnf-1536x864.jpeg 1536w, https://python-man.club/wp-content/uploads/2021/10/E-IN5gOWUAQFjnf-320x180.jpeg 320w, https://python-man.club/wp-content/uploads/2021/10/E-IN5gOWUAQFjnf-640x360.jpeg 640w, https://python-man.club/wp-content/uploads/2021/10/E-IN5gOWUAQFjnf-1280x720.jpeg 1280w, https://python-man.club/wp-content/uploads/2021/10/E-IN5gOWUAQFjnf.jpeg 1920w, https://python-man.club/wp-content/uploads/2021/10/E-IN5gOWUAQFjnf-1024x576.jpeg 856w" sizes="(max-width: 1024px) 100vw, 1024px" /><br />
pandasには一次元のデータもあり、それをseriesと呼びます</p>
<p>データを扱う場合には、その多くが二次元データであるデータフレームになるかと思います</p>
<h3>データフレーム3つの構造</h3>
<p>データフレームを扱う際に以下の3つの構造については知っておいたほうが、今後のデータ加工もスムーズに進むと思います</p>
<ul>
<li><strong>values:実際のデータ</strong></li>
<li><strong>columns:列名（列ラベル）</strong></li>
<li><strong>index:行名（行ラベル）</strong></li>
</ul>
<h3>データフレームを作成する</h3>
<p>では今回の行・列抽出を行うためのデータフレームを作成していきたいと思います</p>
<pre class="language-python"><code>import pandas as pd
# リスト型の配列を作る。
a = [<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank01.png" />,[20,50,30,40,70,60,90]] 
b = ['A列','B列','C列','D列','E列','F列','G列']
d = pd.DataFrame(a, columns=b)
print(d)</code></pre>
<img decoding="async" class="alignnone size-full wp-image-312" src="https://python-man.club/wp-content/uploads/2021/10/スクリーンショット-2021-10-08-11.54.41.png" alt="pandasデータフレーム作成" width="506" height="115" />
<p>上記コードを入力後、実行すると、画像のような配列が出力されます</p>
<p>「a」「b」のデータ数を増やせば、データフレームの配列も増えていきます</p>
<pre class="language-python"><code>import pandas as pd
# リスト型の配列を作る。
a = [<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank01.png" />,[20,50,30,40,70,60,90,55] ,<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank02.png" />,
[11,14,56,63,12,55,67,14],<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank01.png" />]
b = ['A列','B列','C列','D列','E列','F列','G列']
d = pd.DataFrame(a, columns=b)
print(d)
</code></pre>
<p>上記のように列数に対して、データの数が上回ると以下のようなエラーが出ます</p>
<pre class="language-python"><code>  File "/opt/anaconda3/lib/python3.8/site-packages/pandas/core/internals/construction.py", line 568, in _list_to_arrays
    columns = _validate_or_indexify_columns(content, columns)

  File "/opt/anaconda3/lib/python3.8/site-packages/pandas/core/internals/construction.py", line 692, in _validate_or_indexify_columns
    raise AssertionError(

AssertionError: 7 columns passed, passed data had 8 columns


The above exception was the direct cause of the following exception:

Traceback (most recent call last):

  File "/Users/untitled0.py", line 14, in &lt;module&gt;
    d = pd.DataFrame(a, columns=b)

  File "/opt/anaconda3/lib/python3.8/site-packages/pandas/core/frame.py", line 570, in __init__
    arrays, columns = to_arrays(data, columns, dtype=dtype)

  File "/opt/anaconda3/lib/python3.8/site-packages/pandas/core/internals/construction.py", line 528, in to_arrays
    return _list_to_arrays(data, columns, coerce_float=coerce_float, dtype=dtype)

  File "/opt/anaconda3/lib/python3.8/site-packages/pandas/core/internals/construction.py", line 571, in _list_to_arrays
    raise ValueError(e) from e

ValueError: 7 columns passed, passed data had 8 columns</code></pre>
<p><strong>データ数と列数が一致してないですよ</strong>、ということです</p>
<p>データフレームを作成する場合には気をつけておきましょう</p>
<p>少しデータ数を増やして、それを加工していきます</p>
<pre class="language-python"><code>import pandas as pd
# リスト型の配列を作る。
a = [<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank01.png" />,[20,50,30,40,70,60,90] ,<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank02.png" />,
[11,14,56,63,12,55,67],<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank01.png" />]
b = ['A列','B列','C列','D列','E列','F列','G列']
d = pd.DataFrame(a, columns=b)
print(d)</code></pre>
<img decoding="async" class="alignnone size-full wp-image-313" src="https://python-man.club/wp-content/uploads/2021/10/スクリーンショット-2021-10-08-12.00.57.png" alt="pandasデータフレーム加工用" width="497" height="181" />
<h2>データフレームから抽出する</h2>
<p>では、先ほど作成したデータフレームを元に行or列の抽出を行っていきたいと思います</p>
<h3>特定の行の抽出</h3>
<p>特定の行を抽出したい場合には<strong>:(コロン)で行番号を指定</strong>することで、可能となります</p>
<pre class="language-python"><code>import pandas as pd
# リスト型の配列を作る。
a = [<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank01.png" />,[20,50,30,40,70,60,90] ,<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank02.png" />,
[11,14,56,63,12,55,67],<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank01.png" />]
b = ['A列','B列','C列','D列','E列','F列','G列']
d = pd.DataFrame(a, columns=b)
#1行目から3行目を抽出
print(d<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank01.png" />)</code></pre>
<img decoding="async" class="alignnone size-full wp-image-314" src="https://python-man.club/wp-content/uploads/2021/10/スクリーンショット-2021-10-08-12.09.06.png" alt="データフレーム特定行の抽出" width="511" height="102" />
<h3>特定の列を抽出する</h3>
<p>pandasで特定の列を抽出するには、カラム名(列名)を指定することで、特定の列を抽出することが可能です</p>
<pre class="language-python"><code>import pandas as pd
# リスト型の配列を作る。
a = [<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank01.png" />,[20,50,30,40,70,60,90] ,<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank02.png" />,
[11,14,56,63,12,55,67],<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank01.png" />]
b = ['A列','B列','C列','D列','E列','F列','G列']
d = pd.DataFrame(a, columns=b)
#1行目から3行目を抽出
print(d['A列'])</code></pre>
<p>[&#8221;]で指定せずに、.(ドット)を利用しても、特定の列を抽出することが可能です</p>
<pre class="language-python"><code>import pandas as pd
# リスト型の配列を作る。
a = [<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank01.png" />,[20,50,30,40,70,60,90] ,<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank02.png" />,
[11,14,56,63,12,55,67],<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank01.png" />]
b = ['A列','B列','C列','D列','E列','F列','G列']
d = pd.DataFrame(a, columns=b)
#1行目から3行目を抽出
print(d.A列)</code></pre>
<img decoding="async" class="alignnone size-full wp-image-316" src="https://python-man.club/wp-content/uploads/2021/10/スクリーンショット-2021-10-08-23.40.04.png" alt="pandas 列の抽出" width="185" height="97" />
<h3>locを使用して特定の行・列を抽出する</h3>
<p>locを使うことで、特定の行や列を抽出することが可能です</p>
<pre class="language-python"><code>import pandas as pd
# リスト型の配列を作る。
a = [<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank01.png" />,[20,50,30,40,70,60,90] ,<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank02.png" />,
[11,14,56,63,12,55,67],<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank01.png" />]
b = ['A列','B列','C列','D列','E列','F列','G列']
d = pd.DataFrame(a, columns=b)
#A列とB列を抽出
print(d.loc[:,['A列','B列']])</code></pre>
<img decoding="async" class="alignnone size-full wp-image-318" src="https://python-man.club/wp-content/uploads/2021/10/スクリーンショット-2021-10-10-3.25.35.png" alt="pandas loc 使い方1" width="93" height="91" />
<pre class="language-python"><code>import pandas as pd
# リスト型の配列を作る。
a = [<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank01.png" />,[20,50,30,40,70,60,90] ,<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank02.png" />,
[11,14,56,63,12,55,67],<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank01.png" />]
b = ['A列','B列','C列','D列','E列','F列','G列']
d = pd.DataFrame(a, columns=b)
#C列のみ抽出
print(d.loc[:,['C列']])</code></pre>
<img decoding="async" class="alignnone size-full wp-image-319" src="https://python-man.club/wp-content/uploads/2021/10/スクリーンショット-2021-10-10-3.25.55.png" alt="pandas loc 使い方2" width="58" height="96" />
<h3>ilocで行・列を指定して、行・列を抽出する</h3>
<p>ilocを使用することで、行・列を指定して、行・列を抽出することが可能です</p>
<pre class="language-python"><code>import pandas as pd
# リスト型の配列を作る。
a = [<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank01.png" />,[20,50,30,40,70,60,90] ,<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank02.png" />,
[11,14,56,63,12,55,67],<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank01.png" />]
b = ['A列','B列','C列','D列','E列','F列','G列']
d = pd.DataFrame(a, columns=b)
#すべての行と1列目を抽出
print(d.iloc[:,1])</code></pre>
<img decoding="async" class="alignnone size-full wp-image-321" src="https://python-man.club/wp-content/uploads/2021/10/スクリーンショット-2021-10-10-3.42.39.png" alt="pandas bloc 使い方1" width="165" height="89" />
<pre class="language-python"><code>import pandas as pd
# リスト型の配列を作る。
a = [<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank01.png" />,[20,50,30,40,70,60,90] ,<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank02.png" />,
[11,14,56,63,12,55,67],<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank01.png" />]
b = ['A列','B列','C列','D列','E列','F列','G列']
d = pd.DataFrame(a, columns=b)
#1行目と2列目を取得
print(d.iloc<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank01.png" />,<img decoding="async" class="ranking-number" src="https://python-man.club/wp-content/themes/jin/img/rank02.png" />)</code></pre>
<img decoding="async" class="alignnone size-full wp-image-322" src="https://python-man.club/wp-content/uploads/2021/10/スクリーンショット-2021-10-10-3.41.46.png" alt="pandas bloc 使い方2" width="181" height="160" />
<p>locやilocを使った詳しい解説はこちらを参考にしてください</p>
<a href="https://python-man.club/data-extraction/" class="blog-card"><div class="blog-card-hl-box"><i class="jic jin-ifont-post"></i><span class="blog-card-hl"></span></div><div class="blog-card-box"><div class="blog-card-thumbnail"><img decoding="async" src="https://python-man.club/wp-content/uploads/2021/12/アイキャッチ用-320x180.jpg" class="blog-card-thumb-image wp-post-image" alt="python pandas 要素の抽出" width ="162" height ="91" /></div><div class="blog-card-content"><span class="blog-card-title">【キーワード抽出可能】pythonのpandasで要素を抽出する方法(iloc,locなど)</span><span class="blog-card-excerpt">pythonのpandasを使用して、データの要素を抽出・変更する方法をサンプルコード・コメントアウト付きで解説していきます。GUIに実装した場合の、キーワードでの抽出方法もサンプルコード付きで解説していきますので、参考にしてください。...</span></div></div></a>
<h2>まとめ</h2>
<ul>
<li><strong>特定の行の抽出:(コロンで指定)</strong></li>
<li><strong>特定の列の抽出はカラム名で抽出</strong></li>
<li><strong>特定の行・列を抽出はlocを使用</strong></li>
<li><strong>行・列を指定して、行・列を抽出はilocを使用</strong></li>
</ul>
<h3><span style="font-size: 1.5rem;">統計学やpythonについて学んだ書籍一覧</span></h3>
<div class="booklink-box" style="text-align: left; padding-bottom: 20px; font-size: small; zoom: 1; overflow: hidden;">
<div class="booklink-image" style="float: left; margin: 0 15px 10px 0;"><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202109262209247228?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15385339%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener"><img decoding="async" style="border: none;" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5067/9784798155067.jpg?_ex=200x200" /></a></div>
<div class="booklink-info" style="line-height: 120%; zoom: 1; overflow: hidden;">
<div class="booklink-name" style="margin-bottom: 10px; line-height: 120%;">
<p><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202109262209247228?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15385339%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">Pythonで学ぶあたらしい統計学の教科書</a></p>
<div class="booklink-powered-date" style="font-size: 8pt; margin-top: 5px; font-family: verdana; line-height: 120%;">posted with <a href="https://yomereba.com" target="_blank" rel="nofollow noopener">ヨメレバ</a></div>
</div>
<div class="booklink-detail" style="margin-bottom: 5px;">馬場 真哉 翔泳社 2018年04月19日頃</div>
<div class="booklink-link2" style="margin-top: 10px;">
<div class="shoplinkrakuten" style="display: inline; margin-right: 5px;"><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202109262209247228?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15385339%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">楽天ブックス</a></div>
<div class="shoplinkamazon" style="display: inline; margin-right: 5px;"><a href="https://www.amazon.co.jp/exec/obidos/asin/4798155063/baseball0445-22/" target="_blank" rel="noopener">Amazon</a></div>
<div class="shoplinkkindle" style="display: inline; margin-right: 5px;"><a href="https://www.amazon.co.jp/gp/search?keywords=Python%E3%81%A7%E5%AD%A6%E3%81%B6%E3%81%82%E3%81%9F%E3%82%89%E3%81%97%E3%81%84%E7%B5%B1%E8%A8%88%E5%AD%A6%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8&amp;__mk_ja_JP=%83J%83%5E%83J%83i&amp;url=node%3D2275256051&amp;tag=baseball0445-22" target="_blank" rel="noopener">Kindle</a></div>
</div>
</div>
<div class="booklink-footer" style="clear: left;"></div>
</div>
<div class="booklink-box" style="text-align: left; padding-bottom: 20px; font-size: small; zoom: 1; overflow: hidden;">
<div class="booklink-image" style="float: left; margin: 0 15px 10px 0;"><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202109262208519334?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F4117906%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener"><img decoding="async" style="border: none;" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/4788/47882009.jpg?_ex=200x200" /></a></div>
<div class="booklink-info" style="line-height: 120%; zoom: 1; overflow: hidden;">
<div class="booklink-name" style="margin-bottom: 10px; line-height: 120%;">
<p><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202109262208519334?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F4117906%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">完全独習統計学入門</a></p>
<div class="booklink-powered-date" style="font-size: 8pt; margin-top: 5px; font-family: verdana; line-height: 120%;">posted with <a href="https://yomereba.com" target="_blank" rel="nofollow noopener">ヨメレバ</a></div>
</div>
<div class="booklink-detail" style="margin-bottom: 5px;">小島寛之 ダイヤモンド社 2006年09月</div>
<div class="booklink-link2" style="margin-top: 10px;">
<div class="shoplinkrakuten" style="display: inline; margin-right: 5px;"><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202109262208519334?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F4117906%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">楽天ブックス</a></div>
<div class="shoplinkamazon" style="display: inline; margin-right: 5px;"><a href="https://www.amazon.co.jp/exec/obidos/asin/4478820090/baseball0445-22/" target="_blank" rel="noopener">Amazon</a></div>
<div class="shoplinkkindle" style="display: inline; margin-right: 5px;"><a href="https://www.amazon.co.jp/gp/search?keywords=%E5%AE%8C%E5%85%A8%E7%8B%AC%E7%BF%92%E7%B5%B1%E8%A8%88%E5%AD%A6%E5%85%A5%E9%96%80&amp;__mk_ja_JP=%83J%83%5E%83J%83i&amp;url=node%3D2275256051&amp;tag=baseball0445-22" target="_blank" rel="noopener">Kindle</a></div>
</div>
</div>
<div class="booklink-footer" style="clear: left;"></div>
</div>
<div class="booklink-box" style="text-align: left; padding-bottom: 20px; font-size: small; zoom: 1; overflow: hidden;">
<div class="booklink-image" style="float: left; margin: 0 15px 10px 0;"><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_20210926220903331?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F476847%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener"><img decoding="async" style="border: none;" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/0655/9784130420655.jpg?_ex=200x200" /></a></div>
<div class="booklink-info" style="line-height: 120%; zoom: 1; overflow: hidden;">
<div class="booklink-name" style="margin-bottom: 10px; line-height: 120%;">
<p><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_20210926220903331?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F476847%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">統計学入門</a></p>
<div class="booklink-powered-date" style="font-size: 8pt; margin-top: 5px; font-family: verdana; line-height: 120%;">posted with <a href="https://yomereba.com" target="_blank" rel="nofollow noopener">ヨメレバ</a></div>
</div>
<div class="booklink-detail" style="margin-bottom: 5px;">東京大学 東京大学出版会 1991年07月01日頃</div>
<div class="booklink-link2" style="margin-top: 10px;">
<div class="shoplinkrakuten" style="display: inline; margin-right: 5px;"><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_20210926220903331?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F476847%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">楽天ブックス</a></div>
<div class="shoplinkamazon" style="display: inline; margin-right: 5px;"><a href="https://www.amazon.co.jp/exec/obidos/asin/4130420658/baseball0445-22/" target="_blank" rel="noopener">Amazon</a></div>
<div class="shoplinkkindle" style="display: inline; margin-right: 5px;"><a href="https://www.amazon.co.jp/gp/search?keywords=%E7%B5%B1%E8%A8%88%E5%AD%A6%E5%85%A5%E9%96%80&amp;__mk_ja_JP=%83J%83%5E%83J%83i&amp;url=node%3D2275256051&amp;tag=baseball0445-22" target="_blank" rel="noopener">Kindle</a></div>
</div>
</div>
<div class="booklink-footer" style="clear: left;"></div>
</div>
<div class="booklink-box" style="text-align: left; padding-bottom: 20px; font-size: small; zoom: 1; overflow: hidden;">
<div class="booklink-image" style="float: left; margin: 0 15px 10px 0;"><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202110100406393321?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16221105%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener"><img decoding="async" style="border: none;" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/0672/9784798160672.jpg?_ex=200x200" /></a></div>
<div class="booklink-info" style="line-height: 120%; zoom: 1; overflow: hidden;">
<div class="booklink-name" style="margin-bottom: 10px; line-height: 120%;">
<p><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202110100406393321?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16221105%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">現場で使える！pandasデータ前処理入門 機械学習・データサイエンスで役立つ前処理手法</a></p>
<div class="booklink-powered-date" style="font-size: 8pt; margin-top: 5px; font-family: verdana; line-height: 120%;">posted with <a href="https://yomereba.com" target="_blank" rel="nofollow noopener">ヨメレバ</a></div>
</div>
<div class="booklink-detail" style="margin-bottom: 5px;">株式会社ロンバート 翔泳社 2020年04月20日頃</div>
<div class="booklink-link2" style="margin-top: 10px;">
<div class="shoplinkrakuten" style="display: inline; margin-right: 5px;"><a href="https://hb.afl.rakuten.co.jp/hgc/18cb6363.e8f8b707.18cb6364.c87e7f42/yomereba_main_202110100406393321?pc=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16221105%2F%3Fscid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2Fev%2Fbook%2F" target="_blank" rel="noopener">楽天ブックス</a></div>
<div class="shoplinkamazon" style="display: inline; margin-right: 5px;"><a href="https://www.amazon.co.jp/exec/obidos/asin/4798160679/baseball0445-22/" target="_blank" rel="noopener">Amazon</a></div>
<div class="shoplinkkindle" style="display: inline; margin-right: 5px;"><a href="https://www.amazon.co.jp/gp/search?keywords=%E7%8F%BE%E5%A0%B4%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B%EF%BC%81pandas%E3%83%87%E3%83%BC%E3%82%BF%E5%89%8D%E5%87%A6%E7%90%86%E5%85%A5%E9%96%80%20%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%83%BB%E3%83%87%E3%83%BC%E3%82%BF%E3%82%B5%E3%82%A4%E3%82%A8%E3%83%B3%E3%82%B9%E3%81%A7%E5%BD%B9%E7%AB%8B%E3%81%A4%E5%89%8D%E5%87%A6%E7%90%86%E6%89%8B%E6%B3%95&amp;__mk_ja_JP=%83J%83%5E%83J%83i&amp;url=node%3D2275256051&amp;tag=baseball0445-22" target="_blank" rel="noopener">Kindle</a></div>
</div>
</div>
<div class="booklink-footer" style="clear: left;"></div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://python-man.club/select_dataframe/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
