Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在pandas中组合相同数据的稀疏填充列_Python_Pandas - Fatal编程技术网

Python 在pandas中组合相同数据的稀疏填充列

Python 在pandas中组合相同数据的稀疏填充列,python,pandas,Python,Pandas,我有下面的数据框架,我想把第2、3、4、5列合并成一列 | 0 | 1 | 2 | 3 | 4 | 5 | +-----+-----+-----+-----+-----+-----+ | 90 | 90 | A | | A | A | | 101 | 101 | | | T | T | | 245 | 246 | AG | AG | AG | AG | | 302 | 302 | C | | |

我有下面的数据框架,我想把第2、3、4、5列合并成一列

|  0  |  1  |  2  |  3  |  4  |  5  |
+-----+-----+-----+-----+-----+-----+
|  90 |  90 |  A  |     |  A  |  A  |
| 101 | 101 |     |     |  T  |  T  |
| 245 | 246 |  AG |  AG |  AG |  AG |
| 302 | 302 |  C  |     |     |     |
| 324 | 324 |     |  G  |     |  G  |
每列都包含相同类型的数据,但填充的数据很少。当考虑所有列时,每一行都有一个条目。因此,我的目标是将这些列组合在一起

|  0  |  1  | new |
+-----+-----+-----+
|  90 |  90 |  A  |
| 101 | 101 |  T  |
| 245 | 246 |  AG |
| 302 | 302 |  C  |
| 324 | 324 |  G  |

在pandas中有什么方法可以做到这一点,或者我必须在纯python中逐行执行吗?

您可以使用
DataFrame.max(axis=1)
来计算列:

import pandas as pd
from StringIO import StringIO

data = """ 90 ,  90 ,  A  ,     ,  A  ,  A 
101 , 101 ,     ,     ,  T  ,  T 
245 , 246 ,  AG ,  AG ,  AG ,  AG
302 , 302 ,  C  ,     ,     ,    
324 , 324 ,     ,  G  ,     ,  G """


df = pd.read_csv(StringIO(data), header=None)
s = df.ix[:, 2:].max(axis=1)
df = df.ix[:, :1]
df["new"] = s
print df
结果:

     0    1    new
0   90   90    A  
1  101  101    T  
2  245  246    AG 
3  302  302    C  
4  324  324    G