pandasでpaiza問題(配列活用:queue (9) 係)

スポンサーリンク

paizaへのリンク(配列活用:queue (9) 係 (paizaランク C 相当)

pandasのSeriesに値を入れたり削除したりする練習。空のseriesを作った上で、条件に合致した場合に下に値を追加する。’out’の時はインデックスの0を削除するのだが、中身がからになるとNoneTypeになるという問題に手こずった。df is Noneの時に空のseriesを作るという方法で処理したが、他にマシな方法がある気がする。また、インデックスが崩れるのでreset_indexで振り直している。

そのまま出力するとdtypeが出てしまうのでforループを噛ませたが、他に簡単に出せる方法がある気がする。修正法が見つかれば書き直したい。

import pandas as pd

n = int(input())

df = pd.Series([], dtype=pd.StringDtype())

for i in range(n):
    tmp = input()
    if not df.empty:
        if tmp == 'out':
            df = df.drop(index=0)
            if df is None:
                df = pd.Series([], dtype=pd.StringDtype())
            df = df.reset_index(drop=True)

    if tmp != 'out':
        a, b = tmp.split()
        df_tmp = pd.Series([b])
        df = df.append(df_tmp, ignore_index=True)

for value in df:
    print(value)

コメント

当ブログのコンテンツが気に入ったら広告ブロックの解除(ホワイトリスト化)をご検討下さい。

Please disable your adblocker or whitelist this site!

タイトルとURLをコピーしました