質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

2回答

857閲覧

jupyter notebookのsqlite3から読み込んだデータベースを用いたpythonによる処理方法を知りたいです。

yousno

総合スコア7

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2021/04/25 17:09

http://www.tsjshg.info/udemy/Lec56-59.html
上記ページを参考にし、

import sqlalchemy
import sqlite3
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from pandas import Series,DataFrame
import warnings
warnings.filterwarnings('ignore')
%matplotlib inline
sns.set_theme()
import matplotlib
con = sqlite3.connect("data/titanic.db")
sql_query = ''' SELECT * FROM titanic '''
train = pd.read_sql(sql_query, con)

を打ち込んだ上で

def male_female_child(passenger):
age,sex = passenger
if age < 16:
return 'child'
else:
return sex
train['person'] = train[['Age','Sex']].apply(male_female_child,axis=1)

を打ち込み実行すると、数行エラー表示が出て、最終的に
TypeError: '<' not supported between instances of 'str' and 'int'
とのエラー表示が出てしましまいます。

csvからのデータは処理できても、データベースから読み込んだデータではエラー表示がでるようです。

どうしたらcsvのデータを使った実行のように、sqlデータで実行できるのか、教えて戴けると助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

文字列と整数を<で比較することはできません、というエラーが出ています。

python

1def male_female_child(passenger): 2 age,sex = passenger 3 if age < 16: 4 return 'child' 5 else: 6 return sex

python

1def male_female_child(passenger): 2 age,sex = passenger 3 if int(age) < 16: 4 return 'child' 5 else: 6 return sex

とすればたぶん動くでしょう。
これで動かないなら、データベースの中身を提示してください。

投稿2021/04/25 21:34

ppaul

総合スコア24666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yousno

2021/04/26 07:34 編集

お答え有難うございます。 ご指示通り打ち込みしたところ ValueError: invalid literal for int() with base 10: '' との表示が出てしまいました。 データベースの中身を確認すると、データ数値の入力欄に所々空欄が あります。これはデータ元であるkaggleのtitanicのファイル通りです。 どこを修正すればいいかご存知でしたら、ご指摘いただければと思います。
guest

0

逆の発想で数字のほうを文字として認識する処理にしたらいいような気がします。

if Age <=str(16):

「これでいいのかな・・・。」という気持ちは拭いきれませんが。

もし、この辺も分かる方がいらっしゃれば、ご助言お願い致します。

あとできれば、sqliteなどデータベースを用いたデータ分析に詳しい方が

いらっしゃれば、その辺の学習方法についてご教授戴けると助かります。

今、分かっていることとしては、csvファイルよりデータベースを使って分析を

行った方が、より大きいデータ量を取り扱えるということぐらいです。

投稿2021/04/26 08:20

yousno

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問