1 回答

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊
如果我理解正確,您希望為每一行創(chuàng)建副本,其中一列中給出了n值。n這是一種方法:
df["new_id"] = df.Variable.apply(lambda x: list(range(x)))
df = df.explode("new_id")
輸出:
Product Year Variable new_id
0 A 2018 2 0
0 A 2018 2 1
1 A 2019 4 0
1 A 2019 4 1
1 A 2019 4 2
1 A 2019 4 3
2 B 2018 2 0
2 B 2018 2 1
3 B 2019 3 0
3 B 2019 3 1
3 B 2019 3 2
熊貓 <= 0.24 的解決方案
如果由于某種原因,explode因?yàn)槟褂玫氖桥f版本的熊貓而不可用,您可以執(zhí)行以下操作:
cols = df.columns
def make_df(r):
d = {k: r[k] for k in cols}
d["new_var"] = range(r["Variable"])
res = pd.DataFrame(d)
return res
dfs = []
for row in df.iterrows():
dfs.append(make_df(row[1]))
pd.concat(dfs)
輸出是相同的。
添加回答
舉報(bào)