実現したいこと
- データフレームでfor文を回して値を取得し、その値を元に取得した新たな値を各行に追加していく
詳細
(A)のようなデータフレームがあるとき、1行ずつ処理して値を取得し、取得した値を元に新たに取得した値を各行に追加して(B)のようなデータフレームを作りたいですが、
(C)のように上手く追加されません。
原因を教えていただけますと幸いです。
※実際は別の関数を使用して返された値を追加したいのですが、簡略化のため下記のようなデータになっています。
色々といじる中で、追加されるパターンとされないパターンがあることが分かりましたので、ご教示いただけますと幸いです。
(A)初期データ
int_ | |
---|---|
0 | 0 |
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
(B)作りたいデータ
int_ | str_ | |
---|---|---|
0 | 0 | 0 |
1 | 1 | 1 |
2 | 2 | 2 |
3 | 3 | 3 |
4 | 4 | 4 |
(C)実際に作成されたデータ
int_ | str_ | |
---|---|---|
0 | 0 | |
1 | 1 | |
2 | 2 | |
3 | 3 | |
4 | 4 |
該当のソースコード
Python
1import pandas as pd 2 3df = pd.DataFrame({'int_': range(5)}) 4 5df["str_"] = "" 6for i,(index,row) in enumerate(df.iterrows()): 7 row["str_"] = str(i) 8 9print(df)
試したこと
データフレームをリストで作成した下記データフレームだと上手く作成されたのですが、何が違うのかがわからないので、こちらもご教示いただけますと幸いです。
Python
1import pandas as pd 2 3df = pd.DataFrame({'hiragana': ['あ','い','う','え','お']}) 4 5df["str_"] = "" 6for i,(index,row) in enumerate(df.iterrows()): 7 row["str_"] = str(i) 8 9print(df)
作成されたデータ
hiragana | str_ | |
---|---|---|
0 | あ | 0 |
1 | い | 1 |
2 | う | 2 |
3 | え | 3 |
4 | お | 4 |
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
