【发布时间】:2015-12-18 23:39:11
【问题描述】:
我有一个包含 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 文件中的所有变量名。
【问题讨论】:
-
那么你有缺失值的地方它们在df中显示为
NaN吗?你可以做df.apply(lambda x: x.dropna().to_csv(str(x['V1']) + '.txt'), axis=1) -
我建议不要将
file用于您的open()对象。file('name')返回一个文件对象。