![見出し画像](https://assets.st-note.com/production/uploads/images/26332754/rectangle_large_type_2_2e2f754b700497a2f7a680e74da7941d.jpg?width=800)
【Python】DataFrame内のある列に、\t\nとか改行やらがあって、それを消去する方法
解消した方法
df_xx['予'] = df_xx['予'].str.strip()
次点
df_xx['予'] = df_xx['予'].replace("\t","", regex=True)
df_xx['予'] = df_xx['予'].replace("\n","", regex=True)
実際のデータ
\n \tを消したい。
予
0 \n\t\t\t\t\t\t\t\t\t◎\n\t\t\t\t\t\t\t\t
1 \n\t\t\t\t\t\t\t\t\t△\n\t\t\t\t\t\t\t\t
試行錯誤中のエラー
これはエラーが出るが近いところまで処理できている。
当初、列全体に置換処理をしようとするとエラーが出ていたので、一行ずつやったらどうなるかと思った時のもの。
処理も遅いし、完全に不要文字が消えない。
for index,item in df_xx.iterrows():
df_xx['予'][index] = item['予'].replace('\t', '')
df_xx['予'][index] = item['予'].replace('\n', '')
print(df_xx)
エラー文
A value is trying to be set on a copy of a slice from a DataFrame
Try using .loc[row_indexer,col_indexer] = value instead
2行目に目が行くのですが、1行目が大事だと英語サイトに書いてありました。
スライスのコピー(列とか行とか部分を取り出したものとして)に値を入れる部分でエラー。
解説するほど詳しくないものの、スライスへの値を挿入する際に、Pandas側でユーザーがどうしたいのかはっきりしないから、はっきりしろという風に無理やり理解。
▽Python参考記事
【Python】print等の表示を省略しない。行列の両方向を省略しない【全て表示】
いつもお読みいただき、ありがとうございます。 書くだけでなく読みたいので、コメント欄で記事名入れてもらうと見に行きます。