我在 python 腳本后面苦苦掙扎,將格式化的 CSV(“,”作為分隔符)匯入為 DataFrame,按特定列中的值對結果進行分組,并基于這些組,我需要為網路設備輸出格式化的 CLI 配置腳本。
如果有人可以幫助我,我會很高興
我的 CSV (users.csv) 是這樣的
user,email,group
pippo1,[email protected],grp1
pippo2,[email protected],grp1
pippo10,[email protected],grp2
user10,[email protected],grp3
user93,[email protected],grp1
現在我可以通過“組”列匯入和分組資料
df = pd.read_csv('users.csv', sep=',')
grouped = df.groupby('group')
我不能做的是產生這樣的文本輸出
Intro
edit grp1
append member pippo1 pippo2 user93
next
edit grp2
append member pippo10
next
edit grp3
append member user10
next
end
使用下面的“for”,我得到了這個結果,不幸的是這不是我想要實作的
for group in grouped:
print (group)
grp = group[0]
usergrp_text = "edit " grp
usertoappend = group[1]
print (usertoappend['user'].to_string(index=False))
組變數的列印
('grp1', user email group 0 pippo1 [email protected] grp1 1 pippo2 [email protected] grp1 4 user93 [email protected] grp1)
group[1] 變數的列印
pippo1 pippo2 user93
uj5u.com熱心網友回復:
在現實中這樣做for group in grouped時,您會得到一個帶有組名、組內容的元組。
使用組名,并通過對“子資料框”欄位的edit理解來擴展用戶。user不是最有效的,但可以完成作業
grouped = df.groupby('group')
print("Intro")
for k,g in grouped:
print(f"edit {k}")
print(f"append member {' '.join([x for x in g.user])}")
print("next")
print("end")
印刷:
Intro
edit grp1
append member pippo1 pippo2
next
edit grp2
append member pippo10
next
edit grp3
append member user10
next
end
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/477842.html
上一篇:python通過鏈接快速回圈
下一篇:Pandas-添加新列-使用回圈
