python-3.x - 使用 for 循环从大数据帧创建更小的数据帧
问题描述
我有一个数据框,其中包含与特定汽车相关的零件号。我正在尝试使用 for 循环将较大的数据帧(其中包含所有车辆)分解为每个车辆的较小数据帧。我的主要问题是我需要引用车辆名称并将它们放在各自数据框的名称中。例如,我需要将所有 Altima 零件编号放在名为 df2020 Altima 的数据框中
我正在使用下面的代码来完成这个
df4_vehicle_list = df4['Model_Name'].unique()
df4_vehicle_list
此代码返回:array(['2020 Maxima', '2020 Altima', '2020 Leaf', '2019 Altima', '2020(.5) Rogue', '2020 JX', '2021 Murano', '2019 Pathfinder' , '2020 探路者', '2021 盗贼'], dtype=object)
然后我尝试使用下面的代码
for i in df4_vehicle_list:
name = df4['Model_Name'] == i
df[i] = df4[name]
解决方案
IIUC,这就是你要找的。== 测试相等,而 = 用于赋值。因此 for 行之后的第一行创建了每个模型模型的 df 切片。下一行将迭代变量 i 的值分配给 Model Name 列。
df_list = []
for i in df4_vehicle_list:
df = df4.loc[df4['Model_Name'] == i]
df['Model_Name'] = i
df_list.append(df)
concatted_df = pd.concat(df_list)
推荐阅读
- python - 如何使用 pyodbc 中的代理详细信息连接 Azure SQL DW Server
- python - 在python中绘制多个进程图
- python - Aggregating results from nested tuples based on conditions
- css - 变换旋转元素 - 保持在左侧
- jquery - 动画后jQuery计数器无法显示正确的值
- ios - 如何使 UIScrollView 可滚动?
- linux - 比较变量和数字
- c# - c# Dapper 中的 dbms_output.Put_line
- ionic-framework - 如何使用离子玻片?
- .net - 为什么要使用 CancellationToken.ThrowIfCancellationRequested?