【发布时间】:2020-12-22 23:23:26
【问题描述】:
我有以下 pandas 数据框(索引被忽略):
| Account | Currency | Side | Quote1 | Broker1 | Quote2 | Broker2 | Quote3 | Broker3 |
|---|---|---|---|---|---|---|---|---|
| Acc1 | EUR/USD | BUY | 1.218 | Brk3 | 1.216 | Brk6 | NaN | NaN |
| Acc2 | GBP/USD | SELL | 1.345 | Brk6 | 1.330 | Brk5 | 1.341 | Brk3 |
数据框的python表示:
data = {
"Account":["Acc1","Acc2"],"Currency":["EUR/USD","GBP/USD"],"Side":["BUY","SELL"],
"Quote1":[1.218,1.345],"Broker1":["Brk3","Brk6"],
"Quote2":[1.216,1.330],"Broker2":["Brk6","Brk5"],
"Quote3":[np.nan,1.341],"Broker3":[np.nan,"Brk3"]
}
我想重新排列上面的dataframe,得到下面的dataframe:
| Account | Currency | Side | Quote | Broker |
|---------|----------|------|-------|--------|
|Acc1 |EUR/USD |BUY |1.218 |Brk3 |
|Acc1 |EUR/USD |BUY |1.216 |Brk6 |
|Acc2 |GBP/USD |SELL |1.345 |Brk6 |
|Acc2 |GBP/USD |SELL |1.330 |Brk5 |
|Acc2 |GBP/USD |SELL |1.341 |Brk3 |
需要注意的是,要转置的列(Quote1、Broker1、Quote2、Broker2、Quote3、Broker3)只有在它们不包含 NaN 时才应该转置。
我对 pandas 很陌生,所以我尝试了使用我在这里找到的其他线程的多索引和枢轴,但我一直在空单元格(如数据框 1 中第 1 行的 Quote3 和 Broker3)的位置失败被忽略。如果你们能提供帮助,那就太好了!
干杯
彼得卢斯蒂格20
【问题讨论】:
-
欢迎来到 Stackoverflow。很好的第一个问题和如何提出格式良好的 pandas 问题的好例子。