将pandas数据帧切成具有一定列数的行?

时间:2017-11-30 23:22:33

标签: python pandas dataframe rows

我有一个包含19列和大量行的pandas数据框。并非每行都有19列,每行的列长不同。

现在我想创建一个新的数据框,其中只包含12列值的行。

我不确定最好的办法。任何帮助将不胜感激。

谢谢, 拉里

编辑:一个例子。

假设空单元格为NaN。

我想创建一个新的df,只有来自A-E的数据,所以在这个例子中只有第5行和第8行。

    Col1    Col2    Col3    Col4    Col5    Col5    Col6
Row1    A   B       D           
Row2    A   B   C               
Row3    A       C   D           
Row4    A           D           
Row5    A   B   C   D   E       
Row6    A                       
Row7    A   B   C   D   E   F   G
Row8    A   B   C   D   E       
Row9    A   B       D           
Row10   A   B   C               
Row11   A       C   D           
Row12   A           D       F   G
Row13   A   B   C   D           
Row14   A   B   C   D   E       G

1 个答案:

答案 0 :(得分:1)

首先在表格中阅读类似

的内容
import pandas as pd

df = pd.read_csv("pathtothefilename", sep = '\t')
df.fillna(0)

df.fillna(0)会填充那些没有列0的行!

现在,您可以通过在列表中输入其名称来选择您选择的列,从而按照您希望的方式对DataFrame进行子集化。

colnames = ["ThecolumnIwant1", "ThecolumnIwant2"]
df1 = df[colnames]
print(df1)

df1现在拥有您想要的数据。

P.S:请发布您的数据样本,以便我们为您提供更好的帮助..

尝试这个:

df[ ~(df['Col1'].isnull()) & ~(df['Col2'].isnull()) 
& ~(df['Col3'].isnull()) & ~(df['Col4'].isnull()) 
& ~(df['Col5'].isnull())]