我有一个公司名称的数据框架,其结构如下:
import numpy as np
import pandas as pd
df = pd.DataFrame({'name' : ['Nitron', 'Pulset', 'Rotaxi'],
'postal_code' : [1410, 1020, 1310],
'previous_name1' : ['Rotory', np.NaN, 'Datec'],
'previous_name2' : [ np.NaN, 'Cmotor', np.NaN],
'previous_name3' : ['Datec', np.NaN, np.NaN]
})
print(df)
| name | postal_code | previous_name1 | previous_name2 | previous_name3 |
|--------|-------------|----------------|----------------|----------------|
| Nitron | 1410 | Rotory | NaN | Datec |
| Pulset | 1020 | NaN | Cmotor | NaN |
| Rotaxi | 1310 | Cyclip | NaN | NaN |
您会注意到,一家公司最多可以有三个以前的名字。你知道吗
我的目标是“反规范化”上表,以便新的数据帧具有以下形式:
| name | postal_code |
|--------|-------------|
| Nitron | 1410 |
| Rotory | 1410 |
| Datec | 1410 |
| Pulset | 1020 |
| Cmotor | 1020 |
| Rotaxi | 1310 |
| Cyclip | 1310 |
也就是说,我想为以前的公司名称不丢失的所有实例添加一个新行,然后删除以前的名称系列(我还想为每个新行添加postal_code
值)。你知道吗
我正在寻找一个方法的描述(最好是代码或伪代码),这将允许我实现上述结果。你知道吗
使用^{} 和^{} 删除错误值并重新整形,然后通过^{} 删除第二级
MultiIndex
,最后将Series
转换为2列DataFrame
:或者将^{} 与^{} 一起使用,但值的顺序不同:
但可能按第一列排序:
相关问题 更多 >
编程相关推荐