【问题标题】:How to move array list of values into different columns in Pandas DataFrame?如何将值的数组列表移动到 Pandas DataFrame 中的不同列中?
【发布时间】:2020-10-18 14:11:28
【问题描述】:

嗨,我有一个类似的数据框

A
{1,2,3..1000}

我想把它转换成

A B C..ZZZ
1 2 3..10000

如何将数组中的值拆分到不同的列?

【问题讨论】:

  • 请让您的初始状态更清晰。是 df 中的 A 和 {1,2,3}?
  • A 是列名,{1,2,3} 是列中的值
  • 所以我的解决方案有效。
  • 您的解决方案不会将数组拆分为列。我希望每个索引进入不同的列@MhDG7
  • Vinauan:我更新了答案,我以为你的数组长度是 3。

标签: python pandas dataframe arraylist python-3.6


【解决方案1】:

使用df.join:

import itertools
import string

names = list(
    itertools.chain(
        string.ascii_uppercase, 
        (''.join(pair) for pair in itertools.product(string.ascii_uppercase, repeat=3))
))


df = pd.DataFrame([[range(1,1000)]],columns=['A'])
df = df.join(pd.DataFrame(df["A"].apply(pd.Series))).drop('A',axis=1)
df.columns=names[:999]

【讨论】:

    【解决方案2】:

    假设你的 df 是这样的:

    In [924]: df = pd.DataFrame({'A': [{1,2,3}]})
    
    In [925]: df
    Out[925]: 
               A
    0  {1, 2, 3}
    

    你可以这样做:

    In [935]: result = pd.DataFrame(df.A.tolist())
    
    In [936]: result
    Out[936]: 
       0  1  2
    0  1  2  3
    

    【讨论】:

    • 我的 df 不是这样的 A 列的索引高达 10,000。 df = pd.DataFrame({'A': [{1,2,3...,10000}]})
    • 没关系。它会将您的列 A 分解为 10000 个索引。
    • 数组仍然没有被分割成不同的列@Mayank Porwal
    • 您在我的解决方案中遇到的错误是什么?您可以复制粘贴我的解决方案并检查。
    • @DiluVinayan 如果答案有帮助,请upvoteaccept
    猜你喜欢
    • 2015-01-24
    • 2015-10-26
    • 2022-08-17
    • 1970-01-01
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 2018-06-19
    相关资源
    最近更新 更多