【问题标题】:List to string conversion inside the Pandas DataFramePandas DataFrame 中的列表到字符串转换
【发布时间】:2021-04-14 19:08:31
【问题描述】:

我有一个 pandas 数据框,它是使用从 web api 获取的 json 数据创建的。 根据下面的示例输出,一些对象是列表。将这些列表转换为字符串的最佳方法是什么?目标是能够从每个项目中删除 [ ] 和 ' ',因此,在数据框转换为 excel 后,它们不会显示为列表。

来自 Spyder 控制台的示例: 在 [1248] 中:temp_work_df['domains'] 输出[1248]:

0           [amazonaws.com]
1                        []
2                 [cox.net]
3                        []
4      [ctbctelecom.com.br]
         
93            [bigleaf.net]
94                       []
95                       []
96    [comcastbusiness.net, comcast.net]
97                       []
Name: domains, Length: 506, dtype: object

pd.excel 之后的 xlsx 示例(不想在 excel 字段中看到右/左括号或引号):

hostnames                                       domains
['ec2-35-174-167-57.compute-1.amazonaws.com']   ['amazonaws.com']
[]                                              []
['wsip-72-910-19-176.pn.at.cox.net']            ['cox.net']
[]                                              []
['189-132-203-031.static.ctbctelecom.com.br']   ['ctbctelecom.com.br']
['static-adsl190-7-152-179.etz.net.co']         ['etb.net.co']
['223.226.82.37.bc.googleusercontent.com']      ['googleusercontent.com']
['mxxxx.cbm.ncsu.edu']                          ['ndfu.edu']

谢谢, GJ

【问题讨论】:

    标签: python pandas string list dataframe


    【解决方案1】:

    如您所见,temp_work_df['domains'] 是一系列列表,其中每个列表包含一个字符串或为空。

    与直觉相反,访问 Series 中所有列表的元素的方法是使用 str 访问器,就像访问 Series 中所有字符串中的字符一样。所以这会给你每个列表的第一个元素:

    temp_work_df['domains'].str[0]
    

    对于空列表,结果将为 NaN。然后你可以替换它:

    temp_work_df['domains'].str[0].fillna('')
    

    【讨论】:

    • 谢谢!太精彩了!刚刚试了一下,效果很好!现在我只需要弄清楚如何对数据框中具有相同问题的所有其他列应用相同的方法。再次感谢!
    猜你喜欢
    • 2020-11-20
    • 2018-07-13
    • 2019-03-10
    • 2020-09-03
    • 2014-05-31
    • 2016-10-07
    • 2021-07-17
    • 2020-05-22
    • 1970-01-01
    相关资源
    最近更新 更多