gpt4 book ai didi

python - 像sql一样在python中查询csv文件

转载 作者:行者123 更新时间:2023-12-05 02:06:45 25 4
gpt4 key购买 nike

这显然是一个很受欢迎的面试问题。
有 2 个包含恐龙数据的 CSV 文件。我们需要查询它们以返回满足特定条件的恐龙。

注意 - 我们不能使用其他模块,如 q、fsql、csvkit 等。

文件 1.csv:

NAME,LEG_LENGTH,DIET
Hadrosaurus,1.2,herbivore
Struthiomimus,0.92,omnivore
Velociraptor,1.0,carnivore
Triceratops,0.87,herbivore
Euoplocephalus,1.6,herbivore
Stegosaurus,1.40,herbivore
Tyrannosaurus Rex,2.5,carnivore

文件2.csv

NAME,STRIDE_LENGTH,STANCE
Euoplocephalus,1.87,quadrupedal
Stegosaurus,1.90,quadrupedal
Tyrannosaurus Rex,5.76,bipedal
Hadrosaurus,1.4,bipedal
Deinonychus,1.21,bipedal
Struthiomimus,1.34,bipedal
Velociraptor,2.72,bipedal

使用论坛:速度 = ((STRIDE_LENGTH/LEG_LENGTH) - 1) * SQRT(LEG_LENGTH * g),其中 g = 9.8 m/s^2

编写一个程序来读取 csv 文件,并只打印双足恐龙的名称,按速度从快到慢排序。

在 SQL 中,这很简单:

select f2.name from
file1 f1 join file2 f2 on f1.name = f2.name
where f1.stance = 'bipedal'
order by (f2.stride_length/f1.leg_length - 1)*pow(f1.leg_length*9.8,0.5) desc

这在 python 中如何完成?

最佳答案

你可以在 Pandas 中做到这一点,

import pandas as pd
df_1 = pd.read_csv('df_1.csv')
df_2 = pd.read_csv('df_2.csv')

df_comb = df_1.join(df_2.set_index('NAME'), on = 'NAME')
df_comb = df_comb.loc[df_comb.STANCE == 'bipedal']
df_comb['SPEED'] = (df_comb.STRIDE_LENGTH/df_comb.LEG_LENGTH - 1)*pd.Series.pow(df_comb.LEG_LENGTH*9.8,0.5)
df_comb.sort_values('SPEED', ascending = False)

不如 SQL 干净!

关于python - 像sql一样在python中查询csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62480335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com