正确使用pd.insert()函数

时间:2018-01-31 11:25:39

标签: python python-3.x pandas csv

我正在阅读多个.csv文件并将它们写入新的.csv文件。

我正在尝试将if / else语句与pd.insert()结合使用,将新列添加到数据帧的开头,如下所示:

path = r'.../Model_AMs'

allFiles = glob.glob(path + "/*.csv")

for file_ in allFiles:

    df = pd.read_csv(file_, header=None).astype(int).transpose().melt()

    if 'slot' in file_:
        df.insert(loc=0, column='label', value=0)
        print('slot file!')
    else:
        df.insert(loc=0, column='label', value=1)
        print('boss file!')

    pd.DataFrame(dict(zip(df.index, df.value)), index=[0]).to_csv(
      'trainingdata.csv', index=False, header=None, mode='a')

目前新的csv文件看起来像这样:

pixel0, pixel1, pixel2,...
0, 1, 1,...

我希望它看起来像这样:

label, pixel0, pixel1, pixel2,...
1, 0, 1, 1,...

编写csv文件正如我所希望的那样工作,但是我想根据文件名包含的内容在每个数据帧的开头添加一个新列。不确定我是否正确使用pd.insert()函数,或者if / else语句可能是错误的。

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

直接写下df

df.to_csv('trainingdata.csv', header=None, index=False, mode='a')

无需创建其他DataFrame。