设置向上
我有一个包含多个行和列的pandas数据帧df
。
每一行都与申请人Pn
类似,申请人每栏回答An
次问题Qn
。 E.g。
| Q1 | Q2 | Q3 |
----------------
P1 | A1 | A2 | A3 |
P2 | A1 | A2 | A3 |
P3 | A1 | A2 | A3 |
我在for循环中获取每个申请人的答案,迭代每行的列,
number_of_applications = len(df)
for i in range(0,number_of_applications):
var1 = df['var1'][i]
var2 = df['var2'][i]
var3 = df['var3'][i]
这很好。
问题
我想将申请人的答案和相应的列名写入csv文件。所以,对于我想写的每个申请人,
| Q1 | Q2 | Q3 |
----------------
| A1 | A2 | A3 |
申请人特定的csv文件。
我想在循环中这样做。
当前代码
number_of_applications = len(df)
for i in range(0,number_of_applications):
path = 'mypath'
os.chdir(path)
df.iloc[i].to_csv('name.csv',encoding='utf-8', index=False)
产生一个类似的csv文件,
A1
A2
A3
所以只是答案,垂直而没有列名。
如何获得,
| Q1 | Q2 | Q3 |
----------------
| A1 | A2 | A3 |
答案 0 :(得分:2)
试试这个:
path = '/path/to/output/files/{}.csv'
df.groupby(level=0) \
.apply(lambda x: x.to_csv(path.format(x.name), index=False))
上面的代码将为每个申请人生成一个CSV文件(索引值)。文件名称如下:
P1.csv
P2.csv
P3.csv
...
其中P1
,P2
,P3
- 申请人姓名(索引值)