【发布时间】:2018-05-13 13:46:49
【问题描述】:
您好,我正在尝试将多个现有列合并为 1 个新列,然后删除 CSV 文件中的三个原始列。我一直在尝试用熊猫来做到这一点,但运气不佳。我对 python 还很陌生。
我的代码首先将多个 CSV 文件组合在同一个目录中,然后尝试操作这些列。第一个组合有效,我得到一个包含组合数据的 output.csv,但是列的组合没有。
import glob
import pandas as pd
interesting_files = glob.glob("*.csv")
header_saved = False
with open('output.csv','wb') as fout:
for filename in interesting_files:
with open(filename) as fin:
header = next(fin)
if not header_saved:
fout.write(header)
header_saved = True
for line in fin:
fout.write(line)
df = pd.read_csv("output.csv")
df['HostAffected']=df['Host'] + "/" + df['Protocol'] + "/" + df['Port']
df.to_csv("newoutput.csv")
有效地改变这个:
Host,Protocol,Port
10.0.0.10,tcp,445
10.0.0.10,tcp,445
10.0.0.10,tcp,445
10.0.0.10,tcp,445
10.0.0.10,tcp,445
10.0.0.10,tcp,445
10.0.0.10,tcp,445
10.0.0.10,tcp,49707
10.0.0.10,tcp,49672
10.0.0.10,tcp,49670
变成这样:
HostsAffected
10.0.0.10/tcp/445
10.0.0.10/tcp/445
10.0.0.10/tcp/445
10.0.0.10/tcp/445
10.0.0.10/tcp/445
10.0.0.10/tcp/445
10.0.0.11/tcp/445
10.0.0.11/tcp/49707
10.0.0.11/tcp/49672
10.0.0.11/tcp/49670
10.0.0.11/tcp/49668
10.0.0.11/tcp/49667
但是 csv 中还有其他列。
我不是程序员,我只是想解决一个问题,非常感谢任何帮助。
【问题讨论】:
-
抱歉,有什么问题?
标签: python pandas csv dataframe