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

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

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

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

Q&A

解決済

2回答

1801閲覧

python データフレームの数字の0をすべて空白にしたい。

kazusand

総合スコア6

Python

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

0グッド

0クリップ

投稿2021/11/07 09:31

数字の0をすべて空白にしたい。

python
Unnamed: 3 Unnamed: 4の数字の0をすべて空白にしたい

Unnamed: 1 Unnamed: 2 Unnamed: 3 Unnamed: 4

7 2021/11/1 00:00:00 月 41033 154
8 2021-11-02 00:00:00 火 42393 162
9 2021-11-03 00:00:00 水 0 0
10 2021-11-04 00:00:00 木 0 0
11 2021-11-05 00:00:00 金 0 0
12 2021-11-06 00:00:00 土 0 0
13 2021-11-07 00:00:00 日 0 0
14 2021-11-08 00:00:00 月 0 0
15 2021-11-09 00:00:00 火 0 0
16 2021-11-10 00:00:00 水 0 0
17 2021-11-11 00:00:00 木 0 0
18 2021-11-12 00:00:00 金 0 0
19 2021-11-13 00:00:00 土 0 0
20 2021-11-14 00:00:00 日 0 0
21 2021-11-15 00:00:00 月 0 0
22 2021-11-16 00:00:00 火 0 0
23 2021-11-17 00:00:00 水 0 0
24 2021-11-18 00:00:00 木 0 0
25 2021-11-19 00:00:00 金 0 0
26 2021-11-20 00:00:00 土 0 0
27 2021-11-21 00:00:00 日 0 0
28 2021-11-22 00:00:00 月 0 0
29 2021-11-23 00:00:00 火 0 0
30 2021-11-24 00:00:00 水 0 0
31 2021-11-25 00:00:00 木 0 0
32 2021-11-26 00:00:00 金 0 0
33 2021-11-27 00:00:00 土 0 0
34 2021-11-28 00:00:00 日 0 0
35 2021-11-29 00:00:00 月 0 0
36 2021-11-30 00:00:00 火 0 0
37 2021-12-01 00:00:00 水 0 0

試したこと

python

1df["Unnamed: 3"] = df["Unnamed: 3"].replace('0', '') 2df["Unnamed: 4"] = df["Unnamed: 4"].replace('0', '') 3df

結果は変わらなかった。
教えていただけたら幸いです。

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

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

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

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

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

meg_

2021/11/07 09:38

> 結果は変わらなかった。 0は文字列ではなく数値ではありませんか?
kazusand

2021/11/07 09:40

そうです。数字です。
kazusand

2021/11/07 09:46

その場合0すべてを空白にするには、コードはどのように書けばよいでしょうか?
melian

2021/11/07 09:52

空白にすると、他の数値(42393, 162 など)も文字列になってしまいますが、それでもよろしい?
kazusand

2021/11/07 09:56

はい。大丈夫です。
etherbeg

2021/11/07 12:31

問題が解決したら質問のステータスを「受付中」から「解決済」に変更してください。
guest

回答2

0

ベストアンサー

以下のようにdtypeをオブジェクトにすれば、整数と文字列を混在させることができます。

python

1df['Unnamed: 3'] = df['Unnamed: 3'].astype(object) 2df['Unnamed: 4'] = df['Unnamed: 4'].astype(object) 3df['Unnamed: 3'] = df['Unnamed: 3'].mask(df['Unnamed: 3']==0, "") 4df['Unnamed: 4'] = df['Unnamed: 4'].mask(df['Unnamed: 3']==0, "")

投稿2021/11/07 10:30

編集2021/11/07 10:31
ppaul

総合スコア24666

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

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

kazusand

2021/11/07 11:39

そのようなやり方があるんですね。できました。ありがとうございます!
guest

0

空白にすると、他の数値(42393, 162 など)も文字列になってしまいますが、それでもよろしい?

はい。大丈夫です。

python

1df[["Unnamed: 3", "Unnamed: 4"]] = df[["Unnamed: 3", "Unnamed: 4"]].astype(str).replace(r'^0$', '', regex=True)

投稿2021/11/07 10:07

melian

総合スコア19912

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

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

kazusand

2021/11/07 10:12

できました。ご回答ありがとうございます。助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.45%

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

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

質問する

関連した質問