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

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

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

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

Q&A

解決済

2回答

818閲覧

Pythonにおける挙動(データフレーム中身指定)に関して

beginner_0729

総合スコア1

Python

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

0グッド

0クリップ

投稿2022/01/04 23:46

前提・実現したいこと

python初学者です。
「実践データ分析100本ノック」という書籍で学んでいるのですが、挙動を教えていただきたいです。

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

エラーは発生していません

該当のソースコード

一部、抜粋しています

python

1num_pre = 0 2edge_weights = [] 3size = 0.1 4for i in range(len(df_pos.columns)): 5 for j in range(len(df_pos.columns)): 6 if not (i==j): 7 G.add_edge(df_pos.columns[i], df_pos.columns[j]) 8 if num_pre < len(G.edges): 9 num_pre = len(G.edges) 10 weight = 0 11 if (df_pos.columns[i] in df_tr.columns) and (df_pos.columns[j] in df_tr.index): 12 if df_tr[df_pos.columns[i]][df_pos.columns[j]]: 13 weight = df_tr[df_pos.columns[i]][df_pos.columns[j]]*size 14 elif (df_pos.columns[j] in df_tr.columns) and (df_pos.columns[i] in df_tr.index): 15 weight = df_tr[df_pos.columns[j]][df_pos.columns[i]]*size 16 edge_weights.append(weight) 17

教えていただきたいこと

下記のように、「df_tr/ df_pos:あるデータフレーム(CSVデータ)」に対して、
[]1つであれば理解できるのですが、[][]が2つ並んでいる場合の挙動が理解できておりません。

if df_tr[df_pos.columns[i]][df_pos.columns[j]]
weight = df_tr[df_pos.columns[i]][df_pos.columns[j]]*size

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

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

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

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

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

guest

回答2

0

ベストアンサー

最初の[]で指定された列の値がSeriesとして得られます。
次の[]でそのSeriesから指定された行の値が得られます。
つまりdf[列位置][行位置]によって、その位置の値が得られます。

Python

1import pandas as pd 2 3df = pd.DataFrame([[1,2,3],[4,5,6]]) 4print(df) 5# 0 1 2 6#0 1 2 3 7#1 4 5 6 8 9sr = df[0] 10print(sr) 11#0 1 12#1 4 13#Name: 0, dtype: int64 14 15v = sr[1] 16print(v) # 4 17 18v = df[0][1] 19print(v) # 4

投稿2022/01/05 00:25

can110

総合スコア38341

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

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

beginner_0729

2022/01/05 01:32

ご丁寧な説明ありがとうございました。 自分でも再現しようとしていましたが、DataFrameではなく、リストで作ったため、うまく再現できていませんでした。 納得できました。
guest

0

pandasのインデックス参照で行・列を選択し取得pandas.DataFrameの要素の値を取得のところに説明があります。これを最初から読めばわかります。

投稿2022/01/05 00:20

ppaul

総合スコア24670

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

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

beginner_0729

2022/01/05 01:33

参考リンクありがとうございます。 今後の活用させていただきます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問