在具有不同值的指定索引处将列添加到csv文件中

时间:2019-06-04 06:26:14

标签: python pandas csv

我想将列添加到给定索引中,每次具有不同的值(该值根据行的值计算)。 这是我的csv的示例:

org,repo_name,stars_count,fork_count,commit_count
freeCodeCamp,freeCodeCamp,303178,22005,23183,1703
vuejs,vue,140222,20150,3016,82
twbs,bootstrap,133730,65555,18714,46
...

到目前为止,我尝试了此处提供的答案:python pandas insert column

def func(f):
    files = f
    df = pd.read_csv(files)
    df = df.convert_objects(convert_numeric=True)
    df.insert(2, 'new', 1000)
    df.to_csv(files) 

我得到一个添加到索引2的行的结果,值是1000。

,org,repo_name,new,stars_count,fork_count,commit_count
freeCodeCamp,freeCodeCamp,303178,1000,22005,23183,1703
vuejs,vue,140222,1000,20150,3016,82
twbs,bootstrap,133730,1000,65555,18714,46
...

如何修改它以便能够为每行添加一个特定值,而不是到处都添加1000?以及如何添加标题,以便获得以下输出?请注意,score1 ... scoreN是int变量,而不是字符串,可以假定它们已经被计算。

org,repo_name,score,new,stars_count,fork_count,commit_count
freeCodeCamp,freeCodeCamp,303178,score1,22005,23183,1703
vuejs,vue,140222,score2,20150,3016,82
twbs,bootstrap,133730,score3,65555,18714,46
...

谢谢。

2 个答案:

答案 0 :(得分:1)

您可以尝试以下操作:

len_df = len(df.index)+1
df["new"] = ["score"+str(i) for i in range(1,len_df)]

我希望这会对您有所帮助。 好的,所以这可能会有所帮助:

df["new"].values[2] = score_value

请注意,score_value为int

答案 1 :(得分:0)

Pandas几乎要矫kill过正,只能在CSV中插入新列:

$('.classname').slice(3, 15).filter(':visible')