【发布时间】:2021-12-23 21:56:56
【问题描述】:
我有一个看起来像这样的 Dataframe df,虽然我有 20+ P(n) 列;
Time Speed P1 P2 Ratio
1 100 2 NaN 1.2
2 150 3 NaN 1.3
3 500 4 NaN 1.4
4 500 5 NaN 1.5
5 900 NaN 7 1.6
6 150 NaN 6 1.7
7 100 NaN 8 1.8
我正在尝试对这些数据进行交叉制表以构建一个新的数据框,Ratio 值对应于 Speed 和 P(n) 的每个值。所以结果看起来像这样;
Time Speed P1 P2
1 100 1.2 NaN
2 150 1.3 NaN
3 500 1.4 NaN
4 500 1.5 NaN
5 900 NaN 1.6
6 150 NaN 1.7
7 100 NaN 1.8
基本上,我的目标是将P(n) 的值替换为Ratio 的值。
这似乎是一个简单的任务,但我很困在这里。我曾尝试使用 pandas 交叉表,但似乎只能使用两个变量来返回实例数而不是值。我试过这个;
new_df = pd.crosstab(df['Speed'], df['Ratio'].fillna('n/a'))
是否可以使用pd.crosstab 来实现这一点,或者是否有其他方法可用?
【问题讨论】: