将第一列循环遍历多个列并打印成行
我有一个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
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"