我有一个DataFrame列表,它是我的数据集的虚拟变量。我试图找到一种方法将所有这些虚拟变量添加到更大的主虚拟DataFrame中。复杂性开始出现的地方是DataFrames之间的某些标签是相同的。注意:标签应该是相同的名称,我需要以涉及获取当前虚拟名称下的所有数据的方式合并它们。
下面的示例数据@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({
"href",
"crm_member_id",
"email_address",
"account_status"
})
public class Account {
/**
*
* (Required)
*
*/
@JsonProperty("href")
private String href;
/**
*
* (Required)
*
*/
@JsonProperty("crm_member_id")
private String crmMemberId;
/**
*
* (Required)
*
*/
@JsonProperty("email_address")
private String emailAddress;
我的问题是,一些虚拟变量具有相同的名称,必须合并以保持“1”
nested_dummies = [
DataFrame1,
DataFrame2,
DataFrame3,
... ,
DataFrame10
]
总的来说,我有10个这样的DataFrame。最后我需要的是拥有一个Dataframe,其中每个标签中有1个基于10个Dataframe中的虚拟值,具有适当的1或0。
我尝试过concat,combine_first,我手工制作了许多不同的方法,但我无法得到任何东西1)不会覆盖以前的值& 2)将值添加到现有列
有什么想法吗?
FTIW:这个问题源自“;”将字符串分隔为列中的数据点。我已将此信息提取到10个“标记”列中。这些标记列是DataFrames的原因
答案 0 :(得分:1)
假设我知道你正在寻找什么 - 如果任何一个帧在(索引,标签)单元格中有1个,你想要在最后一帧中为1,否则为0 - 你可以concat
然后groupby
:
In [31]: pd.concat(dfs).groupby(level=0).any().astype(int)
Out[31]:
tag1 tag2 tag3 tag4 tag5 tag6 tag9
0 0 1 1 1 0 1 0
1 0 0 1 1 1 1 1
2 1 1 1 0 0 0 0
3 1 1 0 0 0 0 1
4 0 1 1 0 1 0 1
5 1 0 0 1 0 1 0
.max()
也应该有用。
(我可能在这里假设太多了 - 我过去做过类似的事情,所以我可能已经用自己的经验填补了piRSq引起注意的空白。)