如果数据符合标准,则写入数据

时间:2015-12-18 23:39:11

标签: python csv numpy pandas

我有一个包含3000多个变量的数据文件。每行包含来自一个人的数据。并非所有人都拥有每个变量的数据。换句话说,数据文件如下所示:

V1,V2,V3,V4,V5,V6
ID1, ,  , 4, 2, 
ID2,1, 2,  ,  ,  
ID3,1,  ,  ,  , 3

我想为每一行(即每个人)做的是将该行的数据放入其自己的.csv文件中。但问题是我只想要那个人有价值的变量。所以ID1的.csv文件看起来像:

V1,V4,V5
ID1,4, 2

我尝试从以下开始,但是我们仍然坚持如何继续:

df_datafile = pd.read_csv('data.csv')
df_datafile2 = df_datafile.fillna(0)
for row in df_datafile2.itertuples():
    index,V1,V2,V3,V4,V5,V6 = row
    file = open("%s.txt" % (V1),"w")
    for column in df_datafile:
        if column != 0:
            file.write("%s" % (column))

然而,所有这些代码都给了我以V1命名的.csv字段中的所有变量名。

1 个答案:

答案 0 :(得分:0)

怎么样:

df_datafile = pd.read_csv('data.csv')
for row, data in df_datafile.iterrows():
    data.dropna().to_frame().transpose().to_csv('file_{}.csv'.format(row))

如果您稍后再次删除fillna()值,那么您可以跳过0步骤(这就是为什么它没有说df_datafile2)。