【发布时间】:2021-08-11 22:05:24
【问题描述】:
我有一张桌子 pandas DF,看起来像
| Slave | start_addr0 | end_addr0 | start_addr1 | end_addr1 | start_addr2 | end_addr2 | |
|---|---|---|---|---|---|---|---|
| 0 | 0 | 10000000 | 1FFFFFFF | NaN | NaN | NaN | NaN |
| 1 | 1 | 20000000 | 2007FFFF | 40000000 | 40005FFF | NaN | NaN |
| 2 | 1 | 20000000 | 2007FFFF | 20100000 | 201FFFFF | NaN | NaN |
| 3 | 2 | 20200000 | 202FFFFF | 20080000 | 20085FFF | 40006000 | 400FFFFF |
| 4 | 3 | 0 | 0FFFFFFF | NaN | NaN | NaN | NaN |
| 5 | 4 | 20300000 | 203FFFFF | NaN | NaN | NaN | NaN |
| 6 | 5 | 20400000 | 204FFFFF | NaN | NaN | NaN | NaN |
对于每个从属编号,我需要将其转换为范围列表(元组)。例如,
Slave1_list = ( (20000000, 2007FFFF), (40000000, 40005FFF), (20100000, 201FFFFF))
从属设备(行)和地址对(列)的数量可以变化。
谢谢
编辑:
运行以下代码将示例数据加载到数据框中:
import pandas as pd
import io
f = io.StringIO('''Slave|start_addr0|end_addr0|start_addr1|end_addr1|start_addr2|end_addr2
0|10000000|1FFFFFFF|NaN|NaN|NaN|NaN
1|20000000|2007FFFF|40000000|40005FFF|NaN|NaN
1|20000000|2007FFFF|20100000|201FFFFF|NaN|NaN
2|20200000|202FFFFF|20080000|20085FFF|40006000|400FFFFF
3|0|0FFFFFFF|NaN|NaN|NaN|NaN
4|20300000|203FFFFF|NaN|NaN|NaN|NaN
5|20400000|204FFFFF|NaN|NaN|NaN|NaN
''')
df = pd.read_csv(f, sep='|', engine='python', index_col=None)
【问题讨论】:
-
你能发一个我们可以
copy and run的df吗。其次,给出该数据帧的确切预期输出。谢谢