【问题标题】:Convert pandas dataframe to tuple of tuples将熊猫数据框转换为元组的元组
【发布时间】:2018-08-17 14:37:14
【问题描述】:

我有以下熊猫 dataframe df:

     Description    Code
0    Apples         014
1    Oranges        015
2    Bananas        017
3    Grapes         021

我需要把它转换成一个元组的元组,像这样:

my_fruits = ( ('Apples', '014'), 
              ('Oranges', '015'), 
              ('Bananas', '017'), 
              ('Grapes', '021')
            )

你能帮帮我吗?我尝试了以下代码,但它没有返回我真正想要的:

list(zip(df.columns,df.T.values.tolist()))

提前致谢!!!

【问题讨论】:

    标签: python pandas dataframe tuples


    【解决方案1】:

    这样的东西有用吗?

    tuple(df.itertuples(index=False, name=None))
    

    【讨论】:

    • 我更喜欢这种方式,因为它更通用,而且我不需要对列名进行硬编码。这应该是公认的答案。
    【解决方案2】:

    你需要zip这两栏:

    tuple(zip(df.Description, df.Code))
    # (('Apples', 14), ('Oranges', 15), ('Bananas', 17), ('Grapes', 21))
    

    【讨论】:

    • 谢谢!!有效!!您知道如何删除每个字符串之前的 u 符号吗?它说你('Apples',你'014')
    • 您可能正在使用 python 2。正如 @TheHCA 评论的那样,它表明字符串是 unicode。如果您想在 ascii 中使用 this approach 将 unicode 转换为 ascii,并且不介意丢失有关非 ascii 字符的一些信息,则可以使用它们。但一般情况下,您应该可以单独留下u
    • @Psidom,我明白你的意思。但是,它总是失败,因为元组没有该属性编码/解码:(
    • 不能直接对元组进行编码和解码;它必须在字符串上,例如tuple((x.encode('ascii'), y.encode('ascii')) for x, y in zip(df.Description, df.Code))
    猜你喜欢
    • 2014-08-02
    • 2017-11-22
    • 2019-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-17
    • 2021-11-19
    • 2023-03-30
    相关资源
    最近更新 更多