提取csv文件中特定列的信息存入一个新csv文件中: 现有两个csv文件A和B,均含有列名为日期、航班号、WTC、跑道、机位的五列数据,读取这些内容,并根据先按航班号排序、每个航班再按日期从小到大排序的方式存放于一个新csv文件中
时间: 2024-04-29 22:26:40 浏览: 86
ChitGPT:
你好,我可以帮你解决提取csv文件中特定列的信息存入一个新csv文件中的问题。首先,您可以使用Python中的pandas库来读取CSV文件,然后使用DataFrame中的sort_values()函数对数据按航班号和日期进行排序。接着,您可以使用drop()函数将自己不需要的列删除,然后使用to_csv()函数将结果写入新的CSV文件中。下面是Python代码示例:
```python
import pandas as pd
# 读取CSV文件
df_a = pd.read_csv('A.csv')
df_b = pd.read_csv('B.csv')
# 将两个文件合并
df = pd.concat([df_a, df_b])
# 根据航班号和日期排序
df = df.sort_values(by=['航班号', '日期'])
# 仅保留需要的列
df = df[['日期', '航班号', 'WTC', '跑道', '机位']]
# 将结果写入新的CSV文件
df.to_csv('new.csv', index=False, encoding='utf-8-sig')
```
此代码将从文件A.csv和B.csv读取数据,将它们合并,并按航班号和日期排序。然后,仅保留需要的列,并将结果写入新的CSV文件new.csv中。
希望这可以帮助您解决您的问题!
相关问题
写一个python脚本,用pandas读入a.csv和b.csv标记为PDAA和PDBB,在PDAA中创建一个名为fff的新列并全部存入0,查询PDAA中列名为ccc的所有记录是否在PDBB中列名为hhh的所有记录中有值相同的记录,如果有,将该记录在PDBB中同一行中列名为ddd值减去该记录在PDAA中同一行中列名为ddd值作差存入PDAA的列fff中,将列fff输出到c.csv中,对列fff的值进行计数,计算其平均值、中位数、众数、方差、25分位数、75分位数、90分位数、95分位数和99分位数并将结果输出到命令行,将fff列最大50条和最小50条分别输出到a.txt和b.txt中
好的,我可以帮您解决这个问题。以下是Python代码实现:
```
import pandas as pd
import numpy as np
from scipy import stats
# 读取a.csv和b.csv
df_a = pd.read_csv('a.csv')
df_b = pd.read_csv('b.csv')
# 创建fff列并全部存0
df_a['fff'] = 0
# 查询ccc列在PDBB中hhh列中是否有相同值的记录,并将该记录在PDBB中同一行中列名为ddd值减去该记录在PDAA中同一行中列名为ddd值作差存入PDAA的fff列中
for index, row in df_a.iterrows():
if row['ccc'] in df_b['hhh'].values:
df_a.at[index, 'fff'] = df_b.loc[df_b['hhh'] == row['ccc'], 'ddd'].values[0] - row['ddd']
# 输出fff列到c.csv中
df_a['fff'].to_csv('c.csv', index=False)
# 计算fff列的统计指标
print('平均值:', df_a['fff'].mean())
print('中位数:', df_a['fff'].median())
print('众数:', stats.mode(df_a['fff'])[0][0])
print('方差:', df_a['fff'].var())
print('25分位数:', np.percentile(df_a['fff'], 25))
print('75分位数:', np.percentile(df_a['fff'], 75))
print('90分位数:', np.percentile(df_a['fff'], 90))
print('95分位数:', np.percentile(df_a['fff'], 95))
print('99分位数:', np.percentile(df_a['fff'], 99))
# 输出fff列的最大50条和最小50条到a.txt和b.txt中
df_a.sort_values('fff', inplace=True)
df_a.head(50)['fff'].to_csv('b.txt', index=False)
df_a.tail(50)['fff'].to_csv('a.txt', index=False)
```
请注意,由于您要求我不透露您的任何要求,所以如果我理解有误或代码存在错误,请让我知道并指出它们。
python实现根据一个csv文件中指定列的数据,筛选出另一个csv文件对应列中满足条件的数据,将满足条件的数据所在行的数据全部存入新的csv文件中
以下是一种实现方式:
```python
import csv
# 读取原始数据的csv文件,根据指定列的数据创建集合
with open('data1.csv', 'r') as csv1_file:
csv1_reader = csv.reader(csv1_file)
set1 = set()
for row in csv1_reader:
set1.add(row[1]) # 假设要根据第二列数据进行筛选
# 读取需要筛选的csv文件,将满足条件的所有行保存到列表中
with open('data2.csv', 'r') as csv2_file:
csv2_reader = csv.reader(csv2_file)
filtered_rows = []
for row in csv2_reader:
if row[1] in set1: # 如果条件满足,保存该行数据
filtered_rows.append(row)
# 将所有满足条件的行数据保存到新的csv文件中
with open('output.csv', 'w', newline='') as output_file:
csv_writer = csv.writer(output_file)
for row in filtered_rows:
csv_writer.writerow(row)
```
以上代码假设要根据第二列数据进行筛选,并将满足条件的所有行保存到新的`output.csv`文件中。可以根据实际情况进行修改。同时需要注意处理文件不存在等异常情况。
阅读全文