从现有数据框熊猫创建新数据框

时间:2020-08-03 21:42:37

标签: python pandas dataframe

我很难理解如何基于现有数据帧中的元素创建新数据帧。 Here's an example of my current dataframe, and the new dataframe I'd like to populate.

数据框的列结构不同。

我遇到的问题有两个:

  1. 当前df有重复,我不希望在新数据框中重复。我不能简单地从当前df中删除重复项,因为它们的存在是有原因的。例如,从图像中可以看出,我有几行具有相同的事件编号。我想在新的df中有一行,事件编号仅出现一次。

我设想过类似的事情,但这不起作用:

for x in current_df['Incident Number']: 
    if x in new_df['Incident Number']: 
        pass
    else:
        new_df['Incident Number'].append(x)
  1. 一旦我在新df中拥有所有非重复的事件编号,我就不知道如何基于当前df的各个方面填充新df的列。

例如,对于current_df中的每个事件编号,如果current_df ['治疗名称.1'] =='手动除颤',则new_df ['Defibrillation'] ==该事件编号为真。

有人知道怎么做吗?

谢谢您的帮助,希望这很清楚!

1 个答案:

答案 0 :(得分:0)

可以通过从unique事件编号创建数据帧来完成第一部分,如下所示:

new_df = pd.Dataframe(current_df['Incident Number'].unique(), columns=['Incident Number'])

接下来的部分实质上是您如何编写它。这里重要的是要注意使用drop_duplicates来删除重复出现的事件编号。

new_df['Defibrillation'] = current_df.drop_duplicates(subset='Incident Number', ignore_index=True)['Treatment Name.1'] == 'Manual Defibrillation'

new_df现在有两列,一列用于唯一的事件编号,另一列用于与处理名称的值相对应的真值。可以用类似的方式创建更多列。