質問編集履歴

1

ilocの書き方について、質問を追加しました

2022/01/18 13:19

投稿

MakotoAkai
MakotoAkai

スコア7

test CHANGED
File without changes
test CHANGED
@@ -72,6 +72,27 @@
72
72
  のように、該当する変数をひとつづつ処理するような泥臭いやり方をしているのですが、
73
73
  こういう同じような処理を上手にまとめて流す良い方法はありませんでしょうか?
74
74
 
75
+ また、各ブロックの.apply(lambda x: x[1])の部分なのですが、
76
+ tmp=df['xxx'].str.split('=')
77
+ df['xxx']=tmp.iloc[:,1]
78
+ のような形で実装しようとすると2行目の処理のところで、indexがおかしいと言われます。
79
+ te_key_length
80
+ raise IndexingError("Too many indexers")
81
+ pandas.core.indexing.IndexingError: Too many indexers
82
+
83
+ df['xxx']=tmp.iloc[1]
84
+ ならとおりますが、これでは2列目(縦)では無く、2行目(横)が出力されてしまいます。
85
+ [xxx, 1.88]
86
+ みたいな感じで一行分だけが出力される感じです。
87
+
88
+ print(tmp)すると
89
+ 4246 [xxx, 3 ]
90
+ 4245 [xxx, 2.9 ]
91
+ 4244 [xxx, 2.8 ]
92
+ 4243 [xxx, 2.7 ]
93
+ のような感じなので、split('=')自体は正しく動いているように見えます。
94
+
95
+ 正しくはどのように書けば良いのでしょうか?
75
96
 
76
97
 
77
98