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

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

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

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

Python 3.x

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

2回答

857閲覧

[お手数ですがご教示下さい]pandasで読み込んだExcelデータの整合性チェック

h-matsudo

総合スコア11

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

Python 3.x

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2018/10/05 07:16

前提・実現したいこと

クラス編成問題の解を求めたいです。

まず、Win7(32bit)でjupyter notebookを起動し

1 %matplotlib inline
2 import pandas as pd #データ分析
3
4 df = pd.read_excel(r'c:\users\h-matsudo\Desktop\Data.xlsx')
5 df

でエクセルデータの読み込みはできました。
読み込んだデータの整合性をチェックするため

1 for i in df.index:
2 if (df.loc[i] == 1).sum() == 1 and
3 (df.loc[i] == 2).sum() == 1 and
4 (df.loc[i] == 3).sum() == 1 and
5 (df.loc[i] == 4).sum() == 1:
6 print(i, 'ok')
7 else:
8 print(i, 'NG')

を入力したところエラーが発生しました。

発生している問題・エラーメッセージ

File "<ipython-input-6-3348ce2d916e>", line 2 if (df.loc[i] == 1).sum() == 1 and (df.loc[i] == 2)sum() == 1 and (df.loc[i] == 3).sum() == 1 and (df.loc[i] == 4).sum() == 1 : SyntaxError: invalid character in identifier

該当のソースコード

ソースコード

試したこと

特にありません。

補足情報(FW/ツールのバージョンなど)

Python 3.X

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

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

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

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

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

guest

回答2

0

ベストアンサー

私の環境で確認しましたが、質問にあるコードにて問題なく動作しました。
エラーが **"invalid character in identifier"**とのことですので、コード中に全角文字が紛れていないかなどを確認してみてください。


ちなみに検証の処理ですが、for loopを使わなくても、要素毎の数を数えるメソッド Series.value_counts()DataFrame.apply()に全行に対応して

Python

1check_df = (df.apply(pd.Series.value_counts, axis=1)[[1,2,3,4]]==1).all(axis=1)

のように書けるかと思います。

投稿2018/10/05 09:42

magichan

総合スコア15898

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

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

0

(df.loc[i] == 2)sum()

こういうのは行を分割してチェックしてみれば自力でたやすく見つけられるはずのものです。

投稿2018/10/05 07:19

KojiDoi

総合スコア13671

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

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

h-matsudo

2018/10/05 07:29

早速のご回答ありがとうございます。 私のエラー入力ミスで File "<ipython-input-6-3348ce2d916e>", line 2 if (df.loc[i] == 1).sum() == 1 and (df.loc[i] == 2).sum() == 1 and (df.loc[i] == 3).sum() == 1 and (df.loc[i] == 4).sum() == 1 : が正しいエラーメッセージでした。申し訳ございません。 SyntaxError: invalid character in identifier
KojiDoi

2018/10/05 07:46

使ったコードを質問文の「ソースコード」のところにそのまま貼り付けてください。このままではこれ以上の追試ができません。
KojiDoi

2018/10/05 07:50

あと、質問のタイトルはないようにきちんと整合したものにしてください。作業の背景はエクセルのチェックだったかもしれませんが、引っかかってるところはエクセルと何の関係もないですよね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問