我有以下列表和 Dataframe :
lis = ["Color", "Material", "Handle"]
Code for dataframe:
data = [[1, 'Color', 'Yellow', 'SourceA'],
[1, 'Material', 'Plastic', 'SourceA'],
[1, 'Handle', 'Y', 'SourceB'],
[2, 'Color', 'Blue', 'SourceB'],
[2, 'Handle', 'N', 'SourceA'],
[3, 'Color', 'Black', 'SourceA'],
[3, 'Color', 'Black', 'SourceB'],
[3, 'Material', 'Steel', 'SourceA']]
df_one = pd.DataFrame(data, columns=['Id', 'feature', 'feature_value', 'Source'])
df_one =
| ID | feature | feature_value | Source |
| 1 | Color | Yellow | SourceA |
| 1 | Material | Plastic | SourceA |
| 1 | Handle | Y | SourceB |
| 2 | Color | Blue | SourceB |
| 2 | Handle | N | SourceA |
| 3 | Color | Black | SourceA |
| 3 | Color | Black | SourceB |
| 3 | Material | Steel | SourceA |
我需要每个ID都有所有的特点列在"利斯"。ID1有"颜色","材料","处理",但ID2没有"材料"和ID3没有"处理"。我需要我的输出看起来像下面:
| ID | feature | feature_value | Source |
| 1 | Color | Yellow | SourceA |
| 1 | Material | Plastic | SourceA |
| 1 | Handle | Y | SourceB |
| 2 | Color | Blue | SourceB |
| 2 | Handle | N | SourceA |
| 2 | Material | null | UNK |
| 3 | Color | Black | SourceA |
| 3 | Color | Black | SourceB |
| 3 | Material | Steel | SourceA |
| 3 | Handle | null | UNK |
我试着遍历 Dataframe 的行,并为每一行创建一个字典,但是因为ID列不是唯一的,所以我没有唯一的键和值。
任何帮助将不胜感激!
1条答案
按热度按时间8tntrjer1#
如果你确信 * 至少 * 有一个
ID
有lis
的三个值,那么DataFrame.complete
就适合你。输出: