У меня есть следующее dataframe
:
df = pd.DataFrame({'asset_number': [100, 100, 100, 1001, 1001, 1001, 1015, 1015, 1015],
'feature_name': ['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c'],
'value_string': [None, 'xxxx', None, None, 'yyyy', None, None, 'zzzz', None],
'value_float': [42.0, None, 2.25, 42.0, None, 2.25, 37.0, None, 2.75]}
)
+--------------+--------------+-----------------+-------------+
| asset_number | feature_name | value_string | value_float |
+--------------+--------------+-----------------+-------------+
| 100 | a | | 42 |
+--------------+--------------+-----------------+-------------+
| 100 | b | xxxx | |
+--------------+--------------+-----------------+-------------+
| 100 | c | | 2.25 |
+--------------+--------------+-----------------+-------------+
| 1001 | a | | 42 |
+--------------+--------------+-----------------+-------------+
| 1001 | b | yyyy | |
+--------------+--------------+-----------------+-------------+
| 1001 | c | | 2.25 |
+--------------+--------------+-----------------+-------------+
| 1015 | a | | 37 |
+--------------+--------------+-----------------+-------------+
| 1015 | b | zzzz | |
+--------------+--------------+-----------------+-------------+
| 1015 | c | | 2.75 |
+--------------+--------------+-----------------+-------------+
как бы мне этого добиться?
+--------------+----+------+------+
| asset_number | a | b | c |
+--------------+----+------+------+
| 100 | 42 | xxxx | 2.25 |
+--------------+----+------+------+
| 1001 | 42 | yyyy | 2.25 |
+--------------+----+------+------+
| 1015 | 37 | zzzz | 2.75 |
+--------------+----+------+------+
Обратите внимание, что value_string
и value_float
никогда не перекрываются, моя идея была объединить два столбца в один столбец value
и выполнить:
df.pivot('asset_symbol','feature_name', 'value')