将列添加到现有CSV文件

时间:2020-10-20 18:33:45

标签: python python-3.x csv

我试图将新列添加到已经具有如下所示行和列的现有csv中: enter image description here

我希望将所有新列名称附加到第4列之后的列。

我当前拥有的代码是将所有新列添加到csv的底部:

def extract_data_from_report3():
    with open('OMtest.csv', 'a', newline='') as f_out:
        writer = csv.writer(f_out)
        writer.writerow(
            ['OMGroup:OMRegister', 'OMGroup', 'OMRegister', 'RegisterType', 'Measures', 'Description', 'GeneratedOn'])
      

有什么办法可以有效地做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以使用pandas库,而无需遍历值。这是一个例子

new_header = ['OMGroup:OMRegister', 'OMGroup', 'OMRegister', 'RegisterType', 'Measures', 'Description', 'GeneratedOn']
# Import pandas package  
import pandas as pd 

my_df = pd.read_csv(path_to_csv)
for column_name in new_header:
    new_column = [ ... your values ...] #should be a list of your dataframe size
    my_df[column_name] = new_column

请记住,新列的大小应与工作表的行数相同

如果您只需要添加没有值的新列,则可以这样做:

for column_name in new_header:
    new_column = ["" for i in range(len(mydf.index))] #should be a list of dataframe size
    my_df[column_name] = new_column

然后您可以通过以下方式写回csv:

my_df.to_csv(path_to_csv)

Here details on the read_csv method

Here details on the to_csv method

相关问题