【问题标题】:Create individual columns from pandas dataframe从 pandas 数据框创建单个列
【发布时间】:2018-03-05 16:36:20
【问题描述】:

我有一个从 json 文件中提取的数据集,格式为

{"Y": 5, "X": [626,1,2,3]}, {"Y": 3, "X": [3]}, {"Y": 5, "X": [41847,1233]}

我将它从 json 文件中提取到 pandas 数据框,如下所示:

X               Y  
[626,1,2,3]     5

[3]             3

[41847,1233]    5

如何转换成

 X1  X2  X3  X4  Y

626   1   2   3  5

3   NAN NAN NAN 3

41847 1233 NAN NAN 5

【问题讨论】:

    标签: python json pandas numpy dataframe


    【解决方案1】:

    您可以使用apply 循环遍历X 列中的项目并将每个列表转换为Series 对象,这将为您提供一个数据框,其中列表中的元素排列为列:

    pd.concat([df.X.apply(pd.Series).rename(columns="X{}".format), df.Y], axis=1)
    
    #        X0      X1   X2   X3  Y
    #0    626.0     1.0  2.0  3.0  5
    #1      3.0     NaN  NaN  NaN  3
    #2  41847.0  1233.0  NaN  NaN  5
    

    df.X.apply(pd.Series)
    
    #         0       1    2    3
    #0    626.0     1.0  2.0  3.0
    #1      3.0     NaN  NaN  NaN
    #2  41847.0  1233.0  NaN  NaN
    

    【讨论】:

    • 或者df['X'].apply(pd.Series).add_prefix('X').join(df['Y'])也许?
    • @Zero 当然。我喜欢add_prefix的用法。
    • 谢谢。有效。 Pandas 是否为我提供了从数据框 @Psidom 中删除重复行的功能?
    • 1.支持这个答案 2. 如果您有另一个单独的问题,请再次搜索 SO。 3. 如果没有,请重新询问。提示:是的,已经在 SO 上回答了。
    • @kashf34Kashf 您可以使用drop_duplicates 删除重复的行。
    猜你喜欢
    • 1970-01-01
    • 2023-03-19
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    • 2017-04-30
    • 1970-01-01
    • 2020-09-21
    • 1970-01-01
    相关资源
    最近更新 更多