【问题标题】:Create a Dataframe with lists of different sizes [closed]创建具有不同大小列表的数据框 [关闭]
【发布时间】:2018-11-09 21:39:47
【问题描述】:

更改为更好地解释它:

A = ['one',None,None,None]
B = [None,'two',None,None],
C = [None,None,'three','Four']

如果我创建一个数据框,我会得到:

df = pd.DataFrame({'A': A,
                   'B':B,
                   'C':C
})
df     
       A    B       C
0   one     None    None
1   None    two     None
2   None    None    three
3   None    None    Four

但我想要一个类似于下面的预期输出的 DataFrame 预期输出:

       A    B       C
0   one     two     three
1   None    None    four

【问题讨论】:

  • 我对 为什么 这应该是所需的输出感到困惑。是的,有很多方法可以将df 变成df1,但是您遵循的规则是什么?
  • df.bfill().iloc[[0,-1]]? @S_Ymln
  • @HarvIpan 这可能有助于专门为我的 df 实现,但我正在寻找通用目的来处理更大的数据框。如果我的目标是实现那一小部分,我可以简单地创建一个数据框,而不是建议你所说的内容
  • 但是你没有提供一个通用的规则来遵循。在提出未来问题之前,请先阅读如何创建minimal reproducible example,因为您更有可能找到帮助。
  • 在不知道你想要什么的情况下帮助你真的很难。

标签: python pandas


【解决方案1】:

谢谢大家。对不起,我不清楚。我只是想更多地探索PANDAS。我知道这在任何现实世界的情况下都不会有用,但我很好奇。以下是我能够实现我正在寻找的方式。请让我知道是否有任何其他有效的方法可以实现相同的目标。

a= df['A'].dropna().unique()
b= df['B'].dropna().unique()
c= df['C'].dropna().unique()
df_abc = pd.DataFrame({'A' : dict(zip(range(len(a)),a)),
                       'B': dict(zip(range(len(b)),b)),
                       'C' :dict(zip(range(len(c)),c))
                      })
df_abc

    A   B   C
0   one two three
1   NaN NaN Four

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 1970-01-01
    • 2019-08-23
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    相关资源
    最近更新 更多