我有一个具有以下结构的数据帧:
First_Name Last_Name Group_Membership
Joe Francis A
Jane Davis B
Mary Smith A,B,C
Ian Brown A
我需要将单元格Group_Membership中的值转换为列,并得到一个如下所示的数据框:
First_Name Last_Name A B C
Joe Francis Yes No No
Jane Davis No Yes No
Mary Smith Yes Yes Yes
Ian Brown Yes No No
我设法将列Group_成员资格中的值转换为列表,然后将其“分解”,但随后我应该以某种方式将其转置
df.['Group_Membership'] = df.['Group_Membership'].str.split(',')
df.explode('Group_Membership')
不知怎的,我现在应该把它转过来了。而且,我不确定这是最好的方法。。。
非常感谢您的帮助!
另一种方法是也使用get_dummies()。然后将0
替换为No
和1
替换为Yes
下面是如何去做这件事。
df1 = df.Group_Membership.str.get_dummies(',').replace({1:'Yes',0:'No'})
df2 = df.join(df1)
print (df2)
这方面的产出将是:
First_Name Last_Name Group_Membership A B C
0 Joe Francis A Yes No No
1 Jane Davis B No Yes No
2 Mary Smith A,B,C Yes Yes Yes
3 Ian Brown A Yes No No
您可以决定稍后删除Group\u Membership
列或执行以下操作:
df1 = df.Group_Membership.str.get_dummies(',').replace({1:'Yes',0:'No'})
df2 = df[['First_Name','Last_Name']].join(df1)
print (df2)
或者将所有这些合并到一个语句中,如下所示:
df = df[['First_Name','Last_Name']].join(df.Group_Membership.str.get_dummies(',').replace({1:'Yes',0:'No'}))
print (df)
其输出将为:
First_Name Last_Name A B C
0 Joe Francis Yes No No
1 Jane Davis No Yes No
2 Mary Smith Yes Yes Yes
3 Ian Brown Yes No No
首先创建一个辅助DataFrame(A、B和C列):
df2 = df.Group_Membership.str.split(',').explode().to_frame().assign(val='Yes')\
.pivot(columns='Group_Membership').droplevel(0, axis=1).fillna('No')
(打印以查看内容)。
然后创建结果:
result = df[['First_Name', 'Last_Name']].join(df2)
结果是:
First_Name Last_Name A B C
0 Joe Francis Yes No No
1 Jane Davis No Yes No
2 Mary Smith Yes Yes Yes
3 Ian Brown Yes No No
我将客户数据转换成DB表,其中Varchar列类型中的几个单元格值包含date,而不包含date。包含特定格式的日期的文件需要转换为另一个文件,以便进一步用于数据分析作业。我尝试了下面的查询,但它显示了没有日期的单元格的错误。我如何解决这个问题? 基本上,我想去掉实际时间,加上000000来代替实际时间和日期。 查询: 错误: 代码:1292截断了不正确的日期时间值:“EVN”
问题内容: 可以说我在PostgreSQL中有一个带有以下各列的表: 我插入了这两行: 我想将上面的行转换为此(在PostgreSQL中进行选择): 调用PHP 并得到这样的东西: 但是现在,如果我用php调用,我会得到: 希望有人能帮助我解决这个问题,谢谢大家 问题答案: 在9.4中很简单(使用了LATERAL join和jsonb函数): 确切结果:
问题内容: 我有一个带有列的详细信息表: user_id int 代码int 值int 我想建立一个汇总表,如下所示: user_id int valueA int valueB int 在详细信息表中,valueA对应于说代码5,而valueB对应于说代码6,所以我正在寻找类似的东西: 插入摘要(user_id,valueA,valueB)VALUES(从详细信息中选择???); 当然,问题是我
我有一个excel表格,有n行6列,我需要将所有这些行插入数据库表。所以我想把每一行的单元格转换成逗号分隔,并用引号列表标记。此外,如果任何单元格为空,则其值应标记为空字符串(“”) 示例:示例图像
如何将该值作为字符串而不是数字从单元格中获取?下面给出了读取和编写excel的代码
问题内容: 我正在尝试制作俄罗斯方块克隆。游戏使用aJTable作为棋盘的表示。电路板是2D整数数组。 我试图做到这一点,当某个单元格具有某个值时,该单元格将变为某种颜色。我以为我可以正常工作,但是无法正常工作。非常感谢您的帮助。 谢谢。 这是我的代码: 板: InitializeJTable: 问题答案: 数据/模型与视图/表之间存在关系。模型维护“什么”,视图控制“如何”。 JTable提供了