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

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

新規登録して質問してみよう
ただいま回答率
85.48%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1295閲覧

【データ分析】Pythonによるデータの抽出について

nar

総合スコア9

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/02/03 04:01

サーバーから取り出したチャットボットの発話のCSVを、ボット毎に分けた後、ユーザーとボットの発話に分けたいと考えています。

例えば以下のようなCSVがあった場合
イメージ説明

・sendText: 発話内容
・userId: ユーザーのID
・botId: ボットのID
・messageType: ボットの発話ルール
・Bot: TrueがBotの発話 Falseがユーザーの発話

botIdの"B"のみを取り出し、その後Botの"True"のみを取り出したいとします。

python

1df_B=df[df.botId == "B"]

これで"B"のみを取り出すことができたのですが、その後に

python

1df_B_true=df_B[df_B.Bot == "True"]

とすると

/usr/local/lib/python3.6/dist-packages/pandas/core/ops/init.py:1115: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison
result = method(y)

のメッセージが出て、headで確認すると1行目以外がすべてdropされてしまっています。
この場合はどういった処理が適切なのでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

Bot列の型がstrではなくboolであると提示の警告が発生します。"True"ではなくTrueと比較すればよいです。

Python

1import pandas as pd 2from io import StringIO 3 4s = """sendText,userId,botId,messageTyep,Bot 5hello,abc,B,user,False 6hell?,abc,B,rule,True""" 7 8df = pd.read_csv(StringIO(s)) 9print(df) 10# sendText userId botId messageTyep Bot 11#0 hello abc B user False 12#1 hell? abc B rule True 13 14print(df['Bot'].dtype) # bool 15 16df_B=df[df.botId == "B"] 17 18df_B_true=df_B[df_B.Bot == "True"] # FutureWarning: elementwise comparison failed; 19 20df_B_true=df_B[df_B.Bot == True] 21print(df_B_true) 22# sendText userId botId messageTyep Bot 23#1 hell? abc B rule True

投稿2020/02/03 04:15

編集2020/02/03 04:15
can110

総合スコア38266

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

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

nar

2020/02/03 13:39

ご丁寧に回答いただきありがとうございます!!大変わかりやすかったです!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問