第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在合并的 csv 文件中添加附加列

在合并的 csv 文件中添加附加列

FFIVE 2022-10-06 16:05:55
我的代碼合并 csv 文件并使用 pandas 刪除重復(fù)項。是否可以向單個合并文件添加帶有值的附加標(biāo)頭?應(yīng)調(diào)用附加標(biāo)頭Host Alias并應(yīng)對應(yīng)于Host Name例如Host Name是dpc01n1和對應(yīng)的Host Alias應(yīng)該dev_dom1 Host Name是dpc02n1和對應(yīng)的Host Alias應(yīng)該是dev_dom2 等。這是我的代碼from glob import globimport pandas as pdclass bcolors:    HEADER = '\033[95m'    OKBLUE = '\033[94m'    OKGREEN = '\033[92m'    WARNING = '\033[93m'    FAIL = '\033[91m'    ENDC = '\033[0m'    BOLD = '\033[1m'    UNDERLINE = '\033[4m'input_path = r'C:\Users\urale\Desktop\logs'output_path = r'C:\Users\urale\Desktop\logs' + '\\'output_name = 'output.csv'stock_files = sorted(glob(input_path + '\pc_dblatmonstat_*_*.log'))print(bcolors.OKBLUE + 'Getting .log files from', input_path)final_headers = [        'Start Time',         'epoch',         'Host Name',         'Db Alias',         'Database',         'Db Host',         'Db Host IP',        'IP Port',        'Latency (us)']#read in files via list comprehensioncontent = [pd.read_csv(f,usecols = final_headers, sep='[;]',engine='python')            for f in stock_files]print(bcolors.OKBLUE + 'Reading files')#combine files into one dataframecombo = pd.concat(content,ignore_index = True)print(bcolors.OKBLUE + 'Combining files')#drop duplicatescombo = combo.drop_duplicates()#combo = combo.drop_duplicates(final_headers, keep=False)print(bcolors.OKBLUE + 'Dropping duplicates')#write to csv:combo.to_csv(output_path + output_name, index = False)print(bcolors.OKGREEN + 'Merged file output to', output_path, 'as', output_name)
查看完整描述

2 回答

?
交互式愛情

TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個贊

def func(row):

    if row['Host Name'] == "dpc01n1":

        return 'dev_dom1'

    #do your Host Alias generate logic here,and return


combo["Host Alias"]=combo.apply(func, axis=1)

DataFrame.apply 接受一個函數(shù)來生成一個新的 Series 或 DataFrame


https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.apply.html


查看完整回答
反對 回復(fù) 2022-10-06
?
jeck貓

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個贊

像這樣的東西應(yīng)該工作:


import pandas as pd


combo = pd.DataFrame({

        'Start Time' : [1,2,3], 

        'epoch' : [1,2,3], 

        'Host Name': ['dpc01n1','dpc02n1','dpc00103n1'], 

        'Db Alias' : [1,2,3], 

        'Database' : [1,2,3], 

        'Db Host' : [1,2,3], 

        'Db Host IP' : [1,2,3],

        'IP Port' : [1,2,3],

        'Latency (us)' : [1,2,3],

})


h_num = combo['Host Name'].str.lstrip('dpc0').str[:-2]


combo['Host Alias'] = 'dev_dom' + h_num


print(combo)

它假定所有'Host Name's 不以任何其他開頭,'dpc'并且不需要兩個尾隨字符 like 'n1'python教程中的示例

評論中提出的后續(xù)問題:

它假定我合并的 csv 文件已經(jīng)有主機(jī)別名,但它不會導(dǎo)致錯誤:發(fā)生異常:ValueError Usecols 與列不匹配,列預(yù)期但未找到:['Host Alias'] File "D:\OneDrive \python\merger.py", line 42, in content = [pd.read_csv(f,usecols = combo_headers, sep='[;]',engine='python') 除了 dpc,我還有 tpc。我該如何添加呢?– 樹干

str.lstrip無論順序如何,都會刪除參數(shù)中提供的所有字符。只需添加一個't'

h_num = combo['Host Name'].str.lstrip('tdpc0').str[:-2]

添加了 t 的 python 導(dǎo)師示例

更多閱讀 str.strip

至于:

它假定我合并的 csv 文件已經(jīng)有主機(jī)別名

我不確定你的意思。當(dāng)你這樣做

combo['Host Alias'] = 'dev_dom' + h_num

如果該列尚不存在,'Host Alias'則將在 中創(chuàng)建該列。pandas.DataFrame如果確實(shí)存在,則該列將被操作返回的新數(shù)據(jù)替換。然后,您可以使用pandas.DataFrame.to_csv將此 DataFrame 保存到 .csv 文件。



查看完整回答
反對 回復(fù) 2022-10-06
  • 2 回答
  • 0 關(guān)注
  • 158 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號