大家好!
我对python非常陌生,我有一些简单的数据,我想在条形图中进行分离和绘图。
我有一个数据集,目前正在加州驾驶的汽车。它们按年份、燃料类型、Zip代码、Make和“轻型/重型”分开。
我想告诉蟒蛇数汽油车的数量,柴油车的数量,电池电动汽车的数量等等。
我如何分离这些数据,然后在条形图上绘制它呢?我认为这很容易,但我自己已经学习巨蟒一周了。
我附加了数据集,以及到目前为止的一些代码。当我试图把数据细分为“天然气”、“柴油”等时,它会返回“真”。我猜想巨蟒只是在告诉我“是的,上面写的是汽油”。我现在只是希望收集所有的“汽油”在‘燃料’栏,并把他们所有的数字加在‘车辆’栏。
任何帮助都将不胜感激!
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('~/Desktop/PYTHON/californiavehicles.csv')
print(df.head())
print(df.describe())
X = df['Fuel']
y = df['Vehicles']
gas = df[(df['Fuel']=='Gasoline','Flex-Fuel')]
diesel = df[(df['Fuel']=='Diesel and Diesel Hybrid')]
hybrid = df[(df['Fuel']=='Hybrid Gasoline', 'Plug-in Hybrid')]
electric = df[(df['Fuel']=='Battery Electric')]我试图创建一个子系列的数据。我还没有尝试把数字包括在“车辆”中,因为我不知道怎么写。
发布于 2022-11-19 20:42:38
这将让你使用熊猫内置的便利设施。简短的回答是,使用这一行:
df.groupby("Fuel").sum().plot.bar()用自制数据给出的答案很长:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
N = 1000
placeholder = [pd.NA]*N
types = np.random.choice(["Gasoline", "Diesel", "Hybrid", "Battery"], size=N)
nr_vehicles = np.random.randint(low=1, high=100, size=N)
df = pd.DataFrame(
{
"Date": placeholder,
"Zip": placeholder,
"Model year": placeholder,
"Fuel": types,
"Make": placeholder,
"Duty": placeholder,
"Vehicles": nr_vehicles
}
)
df.groupby("Fuel").sum().plot.bar()

发布于 2022-11-19 20:08:04
你特别提到了这是个CSV。逐行读取文件,用逗号分隔数据(它为当前行生成一个列表),如果currentrow3 ==燃料类型增加您的计数。
示例:
gas_cars=0
with open("data.csv", "r") as file:
for line in file:
row = line.split(",")
if row[3] == "Gasoline":
gas_cars += int(row[6]) # num cars for that car make
# ...
# ...
# ...https://stackoverflow.com/questions/74503284
复制相似问题