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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

意見交換

クローズ

2回答

504閲覧

Python Pandas locの活用について

fzet

総合スコア1

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2023/04/04 06:30

0

0

テーマ、知りたいこと

データ整形についてお伺いをしたいです。
行にaという文字列が来ればその一つ上の文字列に書き換えるコードを書きたいです。
どのようにかけば良いか
アドバイスが欲しいです。

環境
Python 3.9.8

背景、状況

整形前

列1ジャンル1
東京
a
a
大阪
a

整形後

列1ジャンル1
東京
東京
東京
大阪
大阪

下記はプログラムを作成してみました。
が、
エラーが残る状況です。
どのように解決したらよいかわからないです。

教ええて頂けますでしょうか。

python

1from itertools import zip_longest 2for (i,j) in zip_longest(len(df["ジャンル1"]), df["ジャンル1"]): 3 z = int(i) - 1 4 if str(j)=="a": 5 a = df["ジャンル1"][int(z)] 6 df.loc['ジャンル'][int(i)] = str(a) 7 else: 8 None

Error

1--------------------------------------------------------------------------- 2TypeError Traceback (most recent call last) 3Cell In [43], line 2 4 1 from itertools import zip_longest 5----> 2 for (i,j) in zip_longest(len(df["ジャンル1"]), df["ジャンル1"]): 6 3 z = int(i) - 1 7 4 if str(j)=="a": 8 9TypeError: 'int' object is not iterable

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

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

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

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

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

回答2

#1

can110

総合スコア38262

投稿2023/04/04 06:42

aをNoneにしてfillnaffillすればよいのではないでしょうか。

Python

1import pandas as pd 2 3df = pd.DataFrame({'city':['tko','a','a','osk','a']}) 4 5sr = df['city'] 6sr[sr=='a'] = None 7df['city'] = sr.fillna(method='ffill') 8 9print(df) 10""" 11 city 120 tko 131 tko 142 tko 153 osk 164 osk 17"""

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

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

#2

melian

総合スコア19714

投稿2023/04/04 07:04

python

1import pandas as pd 2 3df = pd.DataFrame({ 4 '列1': ['1']*5, 5 'ジャンル1': ['東京', 'a', 'a', '大阪', 'a'] 6}) 7 8# 9df['ジャンル1'] = df['ジャンル1'].replace('a', None).ffill() 10print(df)
列1ジャンル1
東京
東京
東京
大阪
大阪

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

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

最新の回答から1ヶ月経過したため この意見交換はクローズされました

意見をやりとりしたい話題がある場合は質問してみましょう!

質問する

関連した質問