<?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>【python pandas 要素の抽出】タグの記事一覧｜python-manブログ</title>
	<atom:link href="https://python-man.club/tag/python-pandas-%e8%a6%81%e7%b4%a0%e3%81%ae%e6%8a%bd%e5%87%ba/feed/" rel="self" type="application/rss+xml" />
	<link>https://python-man.club</link>
	<description>独学者でもpythonでアプリを作れる！</description>
	<lastBuildDate>Mon, 20 Dec 2021 15:35:36 +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の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 fetchpriority="high" 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>
	</channel>
</rss>
