Python Pandas DataFrame-创建动态列数
数据:Python Pandas DataFrame-创建动态列数,python,database,pandas,numpy,dataframe,Python,Database,Pandas,Numpy,Dataframe,数据: qid qualid val 0 1845631864 227 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 1 1899053658 44 1,3,3,2,2,2,3,3,4,4,4,5,5,5,5,5,5,5 2 1192887045 197 704 3 1833579269 194 139472 4 1497352469 30 120026,170154,152723,90407,
qid qualid val
0 1845631864 227 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
1 1899053658 44 1,3,3,2,2,2,3,3,4,4,4,5,5,5,5,5,5,5
2 1192887045 197 704
3 1833579269 194 139472
4 1497352469 30 120026,170154,152723,90407,63119,80077,178871,...
qid qualid val1 val2 val3 valn-3 valn-2 valn-1 valn
0 1845631864 227 0 0 0 ...... 0 0 0 0
1 1899053658 44 1 3 3 ...... 5
2 1192887045 197 704
3 1833579269 194 139472
4 1497352469 30 120026 170154 152723.....63119 80077 178871 12313
qid qualid val1 val2 val3 valn-3 valn-2 valn-1 valn
0 1845631864 227 0 0 0 ...... 0 0 0 0
1 1899053658 44 1 3 3 ...... 5 NaN NaN NaN
2 1192887045 197 704 NaN NaN ...... NaN NaN NaN NaN
3 1833579269 194 139472 NaN NaN ...... NaN NaN NaN
4 1497352469 30 120026 170154 152723.....63119 80077 178871 12313
问题:
qid qualid val
0 1845631864 227 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
1 1899053658 44 1,3,3,2,2,2,3,3,4,4,4,5,5,5,5,5,5,5
2 1192887045 197 704
3 1833579269 194 139472
4 1497352469 30 120026,170154,152723,90407,63119,80077,178871,...
qid qualid val1 val2 val3 valn-3 valn-2 valn-1 valn
0 1845631864 227 0 0 0 ...... 0 0 0 0
1 1899053658 44 1 3 3 ...... 5
2 1192887045 197 704
3 1833579269 194 139472
4 1497352469 30 120026 170154 152723.....63119 80077 178871 12313
qid qualid val1 val2 val3 valn-3 valn-2 valn-1 valn
0 1845631864 227 0 0 0 ...... 0 0 0 0
1 1899053658 44 1 3 3 ...... 5 NaN NaN NaN
2 1192887045 197 704 NaN NaN ...... NaN NaN NaN NaN
3 1833579269 194 139472 NaN NaN ...... NaN NaN NaN
4 1497352469 30 120026 170154 152723.....63119 80077 178871 12313
在列val中用逗号分隔的数字需要在每行的不同列中表示
我不知道Pandas是否允许,但理想情况下,我们希望为每行创建准确的n列数,其中n是val列中的元素数
如果这是不可能的,那么val中的最大元素数应该是元素少于由NAN组成的列数和行数
上述问题的示例解决方案1:
qid qualid val
0 1845631864 227 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
1 1899053658 44 1,3,3,2,2,2,3,3,4,4,4,5,5,5,5,5,5,5
2 1192887045 197 704
3 1833579269 194 139472
4 1497352469 30 120026,170154,152723,90407,63119,80077,178871,...
qid qualid val1 val2 val3 valn-3 valn-2 valn-1 valn
0 1845631864 227 0 0 0 ...... 0 0 0 0
1 1899053658 44 1 3 3 ...... 5
2 1192887045 197 704
3 1833579269 194 139472
4 1497352469 30 120026 170154 152723.....63119 80077 178871 12313
qid qualid val1 val2 val3 valn-3 valn-2 valn-1 valn
0 1845631864 227 0 0 0 ...... 0 0 0 0
1 1899053658 44 1 3 3 ...... 5 NaN NaN NaN
2 1192887045 197 704 NaN NaN ...... NaN NaN NaN NaN
3 1833579269 194 139472 NaN NaN ...... NaN NaN NaN
4 1497352469 30 120026 170154 152723.....63119 80077 178871 12313
上述问题的备选解决方案2:
qid qualid val
0 1845631864 227 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
1 1899053658 44 1,3,3,2,2,2,3,3,4,4,4,5,5,5,5,5,5,5
2 1192887045 197 704
3 1833579269 194 139472
4 1497352469 30 120026,170154,152723,90407,63119,80077,178871,...
qid qualid val1 val2 val3 valn-3 valn-2 valn-1 valn
0 1845631864 227 0 0 0 ...... 0 0 0 0
1 1899053658 44 1 3 3 ...... 5
2 1192887045 197 704
3 1833579269 194 139472
4 1497352469 30 120026 170154 152723.....63119 80077 178871 12313
qid qualid val1 val2 val3 valn-3 valn-2 valn-1 valn
0 1845631864 227 0 0 0 ...... 0 0 0 0
1 1899053658 44 1 3 3 ...... 5 NaN NaN NaN
2 1192887045 197 704 NaN NaN ...... NaN NaN NaN NaN
3 1833579269 194 139472 NaN NaN ...... NaN NaN NaN
4 1497352469 30 120026 170154 152723.....63119 80077 178871 12313
您可以检查
str.split
pd.concat([df,df.val.str.split(',',expand=True).add_prefix('Val_')],axis=1)
Out[29]:
qid qualid ... Val_16 Val_17
0 1845631864 227 ... 0 0
1 1899053658 44 ... 5 5
2 1192887045 197 ... None None
3 1833579269 194 ... None None
4 1497352469 30 ... None None
您可以检查
str.split
pd.concat([df,df.val.str.split(',',expand=True).add_prefix('Val_')],axis=1)
Out[29]:
qid qualid ... Val_16 Val_17
0 1845631864 227 ... 0 0
1 1899053658 44 ... 5 5
2 1192887045 197 ... None None
3 1833579269 194 ... None None
4 1497352469 30 ... None None
谢谢。干杯,非常感谢。干杯