这是我在这里的第一个问题,所以我为任何格式错误或错误的解释道歉
我正在尝试重新组织一个数据帧
现在我有一个dataframe(df),其中每一行的内容都通过它的5列分布。每个单元格的内容有7种可能:文件类型、性别、国籍、签发日期、到期日期、签发国家和无。举个例子:
df = pd.DataFrame(
[["'gender': 'Female'", "'nationality': 'ESP'", "'document_type': 'national_identity_card'", "'date_of_expiry': '2025-11-06'", "'issuing_country': 'ESP'"],
["'gender': 'Male'", "'issuing_date': '2015-05'", "'document_type': 'passport'", "'issuing_country': 'FRA'", None],
["'document_type': 'national_identity_card'", "'issuing_country': 'GRC'", None, None, None]],
index=[0,1,2],
columns=['column1', 'column2', 'column3', 'column4', 'column5'])
In[1]:df
Out[1]:
column1 column2 column3 column4 column5
0 'gender': 'Female' 'nationality': 'ESP' 'document_type': 'national_identity_card' 'date_of_expiry': '2025-11-06' 'issuing_country': 'ESP'
1 'gender': 'Male' 'issuing_date': '2015-05' 'document_type': 'passport' 'issuing_country': 'FRA' None
2 'document_type': 'national_identity_card' 'issuing_country': 'GRC' None None None
我想把那张桌子整理一下,这样我可以数一数男女人数,不同的国籍等等
我已经创建了一个数据框架(df2),其中有6列(文档类型、性别、国籍、发行日期、到期日期和发行国家),我想为每一行将内容组织到正确的单元格中,也就是说,在性别列中我将有“男”或“女”,其他的也一样
df2 = pd.DataFrame(index=[0,1,2], columns=['document_type', 'gender', 'nationality', 'issuing_date', 'date_of_expiry', 'issuing_country'])
In[2]:df2
Out[2]: df2
document_type gender nationality issuing_date date_of_expiry issuing_country
0 NaN NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN
我想为df2获得这样的东西:
document_type gender nationality issuing_date date_of_expiry issuing_country
0 national_identity_card Female ESP None 2025-11-06 ESP
1 passport Male None 2015-05 None FRA
2 national_identity_card None None None None GRC
某一行中的内容应保持在同一行中
我考虑迭代原始数据帧(df),验证对于每一行和每一列,单元格是否有任何包含在列表中的字符串(如lst = ['document_type', 'gender', 'nationality', 'issuing_date', 'date_of_expiry', 'issuing_country']
),如果有,将其排序到正确的列中
不过,我对python还很陌生,不知道该怎么做。我一直在尝试的都无法解决这个问题
感谢您的帮助。谢谢你
您可以使用正则表达式:
输出:
这是由于一个损坏的数据结构,所以我们需要首先解决这个问题,看起来每个单元格都有一个
dict
,所以我们使用方法ast
相关问题 更多 >
编程相关推荐