用python写一个在终端处理数据的脚本,在csv文件中提取四行数据,第一行按照第一列的关键字PointValues, 剩下三行按照第二列按照关键字Tot. Rad. Pwr. (dBm),Peak EIRP (dBm),Directivity (dBi)提取,只保留数字。然后把提取行数据转为列数据保存在csv中,设置表头将按关键字PointValues提取命名为Point Values,按照Tot. Rad. Pwr. (dBm)提取命名Tot Rad Pwr (dBm),按照Peak EIRP (dBm)提取命名Peak EIRP (dBm),按照Directivity (dBi)命名为Directivity (dBi)。
时间: 2024-04-21 11:23:28 浏览: 91
下面是一个满足你要求的Python脚本,用于在终端处理数据并将提取的行数据转为列数据保存到CSV文件中:
```python
import csv
input_file = 'input.csv'
output_file = 'output.csv'
keywords = ['PointValues', 'Tot. Rad. Pwr. (dBm)', 'Peak EIRP (dBm)', 'Directivity (dBi)']
# 打开输入文件并读取内容
with open(input_file, 'r') as csv_file:
reader = csv.reader(csv_file)
rows = list(reader)
# 找到关键字所在的列索引
header = rows[0]
keyword_indexes = [header.index(keyword) for keyword in keywords]
# 提取需要的行数据
output_rows = []
for i, row in enumerate(rows):
if i == 0 or any(keyword in row[column] for column in keyword_indexes):
output_row = []
for column in keyword_indexes:
value = row[column].replace(' ', '') # 移除空格
value = ''.join(filter(str.isdigit, value)) # 保留数字
output_row.append(value)
output_rows.append(output_row)
# 转置数据,将行数据转为列数据
output_rows_transposed = list(map(list, zip(*output_rows)))
# 设置表头
headers = ['Point Values', 'Tot Rad Pwr (dBm)', 'Peak EIRP (dBm)', 'Directivity (dBi)']
# 写入输出文件
with open(output_file, 'w', newline='') as csv_file:
writer = csv.writer(csv_file)
writer.writerow(headers) # 写入列标题
writer.writerows(output_rows_transposed) # 写入数据行
```
请确保将`input.csv`替换为你的输入文件名,将`output.csv`替换为你想要保存结果的输出文件名。这段代码会根据指定的关键字提取相应的行数据,并将提取的数据转置为列数据,然后保存到`output.csv`文件中,同时设置了相应的表头。
阅读全文