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

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

新規登録して質問してみよう
ただいま回答率
85.35%
データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

Python

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

Q&A

解決済

1回答

1091閲覧

python データフレームのデータ欠損部に条件を付けて代入したい。

icemanstanding

総合スコア73

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

Python

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

0グッド

0クリップ

投稿2020/04/01 08:34

データの欠損を修復して欠損をなくしたい。

入手できるデータに欠損値が多く困っています。
欠損部を特定の値で一律に埋めれないため、解決策が見出せません。

同じような悩みを解決した人がいれば、助言をください。

詳細は、添付図を参照ください。

イメージ説明

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

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

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

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

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

meg_

2020/04/01 11:35

値は0か1かしか存在しないのですか?
guest

回答1

0

ベストアンサー

fillna(method='bfill')とfillna(method='ffill')を組み合わせて出来そうです。
とりあえす質問のケースでは出来ました。他のケースは別途検証してください。

Python

1import pandas as pd 2import io 3import numpy as np 4 5text = """ 61,2,3,4,5,6 7A,1,1,1,1,1, 8B,1,,1,1,1,1 9C,1,,,,1,1 10D,1,,,1,, 11""" 12 13df = pd.read_csv(io.StringIO(text)) 14df = df.T 15df2 = df.copy().fillna(method='bfill') 16df3 = df.copy().fillna(method='ffill') 17df_result = pd.DataFrame(df2.values * df3.values, index=df.index, columns=df.columns) 18df_result.fillna(0, inplace=True) 19df_result = df_result.T 20df_result = df_result.astype('int') 21print(df_result) 22# 1 2 3 4 5 6 23#A 1 1 1 1 1 0 24#B 1 1 1 1 1 1 25#C 1 1 1 1 1 1 26#D 1 1 1 1 0 0

※下記は1で挟まれているという条件が抜けていました。

処理通りやるなら、iterrors()などでデータフレームの行をループしてその行の値を1個ずつチェックしてく感じでしょうか?データが多いと処理が遅いとは思いますが。


検証はしていませんが、データフレームを転置してdf.fillna(method='bfill')で穴埋めというのはどうでしょうか?

投稿2020/04/01 22:23

編集2020/04/02 00:11
meg_

総合スコア10760

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問