从 pandas 数据框创建单个列
Posted
技术标签:
【中文标题】从 pandas 数据框创建单个列【英文标题】:Create individual columns from pandas dataframe 【发布时间】: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
【问题讨论】:
【参考方案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
删除重复的行。以上是关于从 pandas 数据框创建单个列的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Python 中创建具有两列作为元组或 Pandas 数据框的单个变量?