前提・実現したいこと
プログラミング超初心者です。
初めてこちらのサイトで質問させていただきます。
Pythonに関する質問です。
やりたいこととしては、以下のようなdf1からdf2に加工することです。
import pandas as pd
df1 = pd.DataFrame({'n': [2, 3, 2],
'a': [100, 300, 500],
'b': [200, 400, 600]})
df2 = pd.DataFrame({'n': [2, 2, 3, 3, 3, 2, 2],
'a': [100, 100, 300, 300, 300, 500, 500],
'b': [200, 200, 400, 400, 400, 600, 600]})
すなわち、df1['n']の数だけdf1の行を複製することです。
私が試してみたコードは以下の通りで、結果は問題ないのですが、
実際やろうとしているデータではdf1の行数が数百行で、nの数も
ある程度大きな数字です。
私が書いたような2重ループのコードだとかなり非効率なので、
より効率の良い書き方はありませんでしょうか。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
ソースコード
試したこと
import pandas as pd
df1 = pd.DataFrame({'n': [2, 3, 2],
'a': [100, 300, 500],
'b': [200, 400, 600]})
df2 = df1
for i in range(len(df1)):
for j in range(df1.iloc[i]['n']-1):
df2 = df2.append(df1.iloc[i])
df2 = df2.sort_index()
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/26 07:05