将第一列循环遍历多个列并打印成行

0 投票
1 回答
54 浏览
提问于 2025-04-14 16:12

我有一个CSV文件,里面有很多列(附上了截图)。第一列是标识符,后面的列是一些人的名字。我想把第一列的内容和后面所有列的内容循环起来,然后按标识符把它们打印成行,像这样:

对象ID 姓名
Church RG 001 Cox, Fay L.
Church RG 001 Schwar, Elaine D.
Church RG 001 Hollenbach, Raymond E.

我在Python中尝试了以下代码。

import csv as csv
import pandas as pd
pd.DataFrame.iteritems = pd.DataFrame.items

df = pd.read_csv("agents.csv")

s=df[df['Object ID']]
df=df.reindex(df.index.repeat(df['Object ID']))
df

CSV文件的图片

1 个回答

1

我用普通的Python(也就是没有用pandas库)实现了这个功能。

import csv
with open('input.csv', 'r') as file:
    reader = csv.reader(file)
    for row in reader:
        church = row[0]  # Get the church name
        names = row[1:]  # Get the list of names
        
        # Print the church name and each name
        for name in names[1:]:
            print(f'"{church}","{name}"')

我使用了这个输入文件:

"church1","name1,a","name1,b","name1,c","name1,d"
"church2","name2,a","name2,b","name2,c","name2,d","name2,e","name2,f"
"church3","name3,a","name3,b"
"church4","name4,a","name4,b","name4,c"

然后我得到了这个输出结果:

"church1","name1,b"
"church1","name1,c"
"church1","name1,d"
"church2","name2,b"
"church2","name2,c"
"church2","name2,d"
"church2","name2,e"
"church2","name2,f"
"church3","name3,b"
"church4","name4,b"
"church4","name4,c"

撰写回答