使用pandas或numpy展开CSV记录

时间:2015-03-18 06:56:53

标签: python csv numpy pandas

我有一个名为file1.csv的CSV文件,如下所示:

#file1.csv
place,time,count
1,1,10
2,2,12

我想创建一个名为file2.csv的新CSV文件,其标题与上面相同,但是地址代码是10倍加[1-4],计数是1/4(时间保持不变相同的价值)。

因此,file2.csv的行数比file1.csv大4倍。 (我需要将上面的示例csv转换成下面的内容。)

#file2.csv
place,time,count
11,1,2.5
12,1,2.5
13,1,2.5
14,1,2.5
21,2,3
22,2,3
23,2,3
24,2,3

我通常使用pandas(或numpy)处理CSV文件,但我不知道如何扩展pandas DataFrame的记录。

1 个答案:

答案 0 :(得分:2)

使用熊猫。

import pandas as pd
df = pd.DataFrame.from_csv("file1.csv")

new = pd.DataFrame({"time": np.repeat(df.time.values, 4)}, columns=df.columns)
new["place"] = np.concatenate([np.ones(4) * df.place[i] * 10 + np.arange(1,5) for i,_ in enumerate(df.time)])
new["count"] = np.concatenate([np.ones(4) * df["count"][i] / 4 for i,_ in enumerate(df.time)])
new.to_csv("file2.csv")

编辑:现在它应该按预期工作。