Python 如何基于dataframe列的唯一值创建文本文件?
我有一个excel表格,有两列,分别叫做('NE'和'Interface'),我想做的是:用每个接口值编辑一个.txt文件模板(我已经有了,我在下面显示了它)。然后连接属于同一组“NE”的txt文件 这是我的excel: 这是我的txt文件模板,我想用excel的接口值更改“接口”:Python 如何基于dataframe列的唯一值创建文本文件?,python,excel,pandas,export,concatenation,Python,Excel,Pandas,Export,Concatenation,我有一个excel表格,有两列,分别叫做('NE'和'Interface'),我想做的是:用每个接口值编辑一个.txt文件模板(我已经有了,我在下面显示了它)。然后连接属于同一组“NE”的txt文件 这是我的excel: 这是我的txt文件模板,我想用excel的接口值更改“接口”: conf t **$interface** no service-policy input QOS-IN_ACCESS end conf t no policy-map QOS-IN_ACCESS pol
conf t
**$interface**
no service-policy input QOS-IN_ACCESS
end
conf t
no policy-map QOS-IN_ACCESS
policy-map QOS-IN_ACCESS
class DSCP_VOIX_SIG
set mpls experimental imposition 5
set qos-group 5
end
conf t
**$interface**
service-policy input QOS-IN_ACCESS
end
这是我的代码:(我已经连接了这些文件,我需要做的是将它们放在一组NE中)
从字符串导入模板
作为pd进口熊猫
df3=pd.read\u excel(r“C:\Users\audit\u policymap.xlsx”)
打开(r“C:\Users\audit\u policymap.txt”)作为fp:
模板=模板(fp.read())
content2=''
content3=“”
对于范围内的i(len(df3)):
文件名=df.loc[i,“NE”]+'\u output.txt'
以fp形式打开(文件名为“w”):
内容=模板.substitute(接口=df.loc[i,“接口”])
如果df.loc[i,“NE”]==df.loc[i+1,“NE”]:
content2=str(content2)+'\n'+str(content)+'\n'
content3=str(content2)+'\n'
fp.write(content2)
其他:
content2=''
content3=str(content3)+'\n'+str(content)+'\n'
fp.write(内容3)
总结:我想让每个“NE”编辑一个txt文件,并根据其对应的“NE”编辑所有接口。- 在
列上使用。NE
- 这将返回一个
对象,其中DataFrameGroupBy
是i
中唯一的groupby值,NE
是关联的组g
- for循环将遍历
NE
- 这将返回一个
- 使用f字符串指定唯一的文件名(例如
)f'{i}\u output.txt'
'250002-PEFTTS-2_output.txt'
- 由于
中的所有值只属于g
中的一个唯一值,因此不需要像您在问题中所做的那样检查NE
是否与每一行匹配NE
是一种列表理解,对于[str(template.substitute(interface=row))代替g.interface中的行]
中的每一行,将g.interface
添加到列表中。str(template.substitute(interface=row))
将列表中的每个项目作为一个由换行符分隔的字符串进行连接'\n'.join()
对于df.groupby('NE')中的i,g:#遍历NE中的唯一值
file_name=f'{i}_output.txt'#创建空内容字符串
打开(文件名为“w”)作为fp:#打开文件
content='\n'.join([str(template.substitute(interface=row))代替g.interface中的行])
fp.write(content)#将内容写入文件