我创建了一个 pandas 数据框,如下所示:
ds = {'col1' : ["A","B"], 'probability' : [0.3, 0.6]}
df = pd.DataFrame(data=ds)
数据框如下所示:
print(df)
col1 probability
0 A 0.3
1 B 0.6
我需要创建一个新的数据框,它复制每一行,并为重复的记录分配总和为 1 所需的概率。
从上面的例子来看:
生成的数据框如下所示:
col1 probability
0 A 0.3
1 A 0.7
2 B 0.6
3 B 0.4
有人可以帮我用 pandas 做这个吗?
一个可能的解决方案:
pd.concat([
df,
pd.DataFrame(zip(df['col1'], 1-df['probability']), columns=df.columns)])
.sort_values('col1')
输出:
col1 probability
0 A 0.3
0 A 0.7
1 B 0.6
1 B 0.4