如何根据其内容为每一行重新排列每个单元格?

躁狂

这是我的第一个问题,对于任何格式错误或解释错误,我深表歉意。

我正在尝试重组一个数据框。

现在,我有一个数据框(df),其中每一行的内容通过其5列进行分配。每个单元格的内容有7种可能性:document_type,性别,国籍,issuing_date,expire_expiry,issuing_country和None。这是一个例子:

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列(document_type,性别,国籍,issuing_date,date_of_expiry和issuing_country),我希望将每一行的内容组织到正确的单元格中,即在“性别”列中有“男”或“女”,其他人也一样。

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还是很陌生,不知道该怎么做。我一直在尝试什至无法解决这个问题。

任何帮助表示赞赏。谢谢。

BEN_YO

这是由于数据结构损坏导致的,因此我们需要首先解决该问题,看起来dict每个单元格都有一个问题,因此我们使用methodast

import ast
yourdf=('{'+df.stack()+'}').apply(ast.literal_eval).apply(pd.Series).fillna('').sum(level=0)
yourdf
Out[19]: 
   gender nationality     ...      issuing_country issuing_date
0  Female         ESP     ...                  ESP             
1    Male                 ...                  FRA      2015-05
2                         ...                  GRC             
[3 rows x 6 columns]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据位置重新排列单元格内容

重新排列Cognos 10中单元格的内容

Scala 和 Spark:为每一行的每个单元格添加值

如何显示每一行的单元格值?

使用可变字段重新排列 Excel/R 中的多个单元格内容

如何在Excel,R中基于部分字符串匹配重新排列行中的单元格

ag-grid:根据同一行其他单元格中的内容禁用单元格

重新排列单元格后如何更改fetchresultcontroller数组中对象的顺序

如何在Excel中的不同列中的多个单元格中重新排列值

如何在 iOS Swift 中的 didselect 方法中重新排列单元格?

将Origina Destinations的GIS数据重新排列为每点一行

重新排列文件中每一行上的文本

VBA 复制一行的内容并根据单元格值乘以它

根据上面一行中的单元格内容重复复制数据

如何将文本文件的每一行写入新文件并根据其内容命名?

剑道网格单元格在每个单元格和每一行中都带有动画效果,就像纸牌一样

如何用同一行的最大值除以行的每个单元格

根据单元格的值复制并粘贴一行

提取单元格中的一行内容

在两列的每一行中的每个单元格中添加1,直到到达空白单元格-Google Spreadsheet

选择/突出显示每一行中每个特定单元格值(“ Apple”)的列范围(AL)

如何使用 Ruby on Rails 5.2 计算数组中一行的每个单元格?

根据同一行单元格的值停止编辑单元格

SQL:如何根据条件用前一行值填充空单元格?

在矩阵的一行中重新排列字符向量

将多行信息重新排列为一行

在表单元格div上为角材料中的每一行设置z索引

如何选择单元格为空的最后一行

如果下一行单元格为空,如何重复列值