【发布时间】:2021-04-27 20:03:40
【问题描述】:
我有一个像这样的具有相同键值的表
| Measure | element | unit | value |
|---|---|---|---|
| Measurment N° 000001 - A | NA | NA | NA |
| Point 0000000101 | NA | NA | NA |
| Station alpha | NA | NA | NA |
| NA | NA | NA | 11-Jan-2018 |
| NA | Parameter A | mg | 5 |
| NA | Parameter C | mg | 6 |
| NA | Parameter E | mg | 8 |
| NA | Parameter F | mg | 3 |
| NA | Parameter G | mg | 4 |
| Measurment N° 000003 - A | NA | NA | NA |
| Point 0000000121 | NA | NA | NA |
| Station bravo | NA | NA | NA |
| NA | NA | NA | 19-Jun-2019 |
| NA | Parameter A | mg | 1 |
| NA | Parameter B | mg | 9 |
| NA | Parameter D | g | 5 |
| NA | Parameter F | mg | 6 |
| NA | Parameter G | mg | 3 |
| Measurment N° 000003 - B | NA | NA | NA |
| Point 0000000122 | NA | NA | NA |
| Station charlie | NA | NA | NA |
| NA | NA | NA | 17-Jan-2020 |
| NA | Parameter A | mg | 9 |
| NA | Parameter E | mg | 5 |
| NA | Parameter F | mg | 3 |
df <- as_tibble(list(measure = c('Measurment N° 000001 - A', 'Point 0000000101', 'Station alpha', NA, NA, NA, NA, NA, NA,'Measurment N° 000003 - A', 'Point 0000000121', 'Station bravo', NA, NA, NA, NA, NA, NA,'Measurment N° 000003 - B', 'Point 0000000122', 'Station Charlie', NA, NA, NA, NA),
element = c(NA, NA, NA, NA, 'Parameter A', 'Parameter C','Parameter E','Parameter F','Parameter G',NA, NA, NA, NA, 'Parameter A', 'Parameter B','Parameter D','Parameter F','Parameter G',NA, NA, NA, NA, 'Parameter A', 'Parameter E','Parameter F'),
unit = c(NA, NA , NA, NA, 'mg', 'mg', 'mg', 'mg', 'mg',NA, NA , NA, NA, 'mg', 'mg', 'g', 'mg', 'mg',NA, NA , NA, NA, 'mg', 'mg', 'mg'),
value = c(NA, NA , NA, '11-Jan-2018', 5, 6, 8, 3, 4,NA, NA , NA, '19-Jun-2019', 1, 9, 5, 6, 3,NA, NA , NA, '17-Jan-2020', 9, 5, 3)))
我必须按点获取数据,测量站是这样的:
| Measurement | point | station | date | Parameter A | Parameter B | Parameter C | Parameter D | Parameter E | Parameter F | Parameter G |
|---|---|---|---|---|---|---|---|---|---|---|
| NA | NA | NA | NA | mg | mg | mg | g | mg | mg | mg |
| Measurment N° 000001 - A | Point 0000000101 | Station alpha | 11-Jan-2018 | 5 | NA | 6 | NA | 8 | 3 | 4 |
| Measurment N° 000003 - A | Point 0000000121 | Station bravo | 19-Jun-2019 | 1 | 9 | NA | 5 | NA | 6 | 3 |
| Measurment N° 000003 - B | Point 0000000122 | Station Charlie | 17-Jan-2020 | 9 | NA | NA | NA | 5 | 3 | NA |
我正在寻找一种使用 R 或 pandas 聚合这些数据的方法
【问题讨论】:
-
通过将
"mg"预期为框架中的行,您可以保证您的所有数字都是字符串,而不是数字。 R 不像其他工具那样做两个标题行。我建议将数字存储为数字,或者对列名中的单位进行编码,或者如果它们不完全相同,则将它们存储在另一组列中。 -
我可以放弃那个单位线,这并不重要
标签: python r pandas dataframe dplyr