import pandas as pd
d1 = pd.DataFrame({'Airline':['A','B','C'],'Delays':[[],[1],[1,2]]})
# Expand column into temporary Dataframe
d2 = d1['Delays'].apply(pd.Series)
# Integrate temp columns back into original Dataframe (while naming column)
for col in d2:
d1["Delay%d" % (col+1)] = d2[col]
print(d1)
在此之前:
^{pr2}$
之后:
Airline Delays Delay1 Delay2
0 A [] NaN NaN
1 B [1] 1.0 NaN
2 C [1, 2] 1.0 2.0
您还可以将临时数据框中的列命名为:
# Name columns of new dataframe
d2.columns = ["Delay%d" % (i+1) for i in range(len(d2.columns))]
对于新列,最好使用} 到原始列:
DataFrame
构造器,因为.apply(pd.Series)
速度慢,请检查this timings,最后一个^{如果需要删除列,请先使用^{} :
^{pr2}$有一种方法:
在此之前:
^{pr2}$之后:
您还可以将临时数据框中的列命名为:
然后用concat。在
您还可以删除“现已展开的延迟”列,内容如下:
相关问题 更多 >
编程相关推荐