pandas入門 列名を指定して配列を代入する

03 04, 2019

データをいろいろ扱いたい

pandasには、データを扱うための色々な便利な関数があります。 今回は列名を指定して値を代入したいと思います。

元となるデータ

元となるデータはCrieitさんのタイトル一覧です。

from bs4 import BeautifulSoup
import requests
import pandas as pd

columns = ['title']
df = pd.DataFrame(columns=columns)

base_url = "https://crieit.net/posts?page="

num = 1
while num <= 1:
 url=base_url+ str(num)
 r = requests.get(url)
 soup = BeautifulSoup(r.text)
 titles =soup.select("h5 a")
 if len(titles) == 0:
  print("これ以上記事はありません")  
  break
 num += 1
 for title in titles:
  se= pd.Series(title.text, columns)
  df = df.append(se, ignore_index=True)
df

列名を指定して値を代入する方法

pandasで値を代入するには

df[列名]=[配列]

と書くだけです。

今回は10までの配列を用意しました。

出来たコード

from bs4 import BeautifulSoup
import requests
import pandas as pd

columns = ['title']
df = pd.DataFrame(columns=columns)
arr =[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
base_url = "https://crieit.net/posts?page="

num = 1
while num <= 1:
 url=base_url+ str(num)
 r = requests.get(url)
 soup = BeautifulSoup(r.text)
 titles =soup.select("h5 a")
 if len(titles) == 0:
  print("これ以上記事はありません")  
  break
 num += 1
 for title in titles:
  se= pd.Series(title.text, columns)
  df = df.append(se, ignore_index=True)

df["num"]=arr
df

出力サンプル

numの列ができて数値が1から20まで並びました。

動くサンプル

Python3


コリ

コリといいます。奈良県でサラリーマンをしています。GatsbyJSでサイトを作るのが趣味です。