【问题标题】:Creating new data frame from old dataframe从旧数据框创建新数据框
【发布时间】:2022-07-31 15:59:14
【问题描述】:

我想创建一个新的数据框,其中只有那些在Image_list 中有名称的行。原始df 有超过 200,000 条记录,而Image_list 只有 300 个图像名称列表。

for name in Image_list:
    df1= df.loc[df['ID']== name]
    print(df1)
    Final_data.append(df1)

Final_data.shape

“ID”列包含的内容远不止Image_list,例如

['Black_Hair',
 'Eyeglasses',
 'Male',
 'Smiling',
 'Straight_Hair',
 'Wearing_Earrings',
 'Wearing_Necktie']

【问题讨论】:

  • 应该使用df1= df[df['ID']==name]
  • 更改,但数据未复制到新数据框中
  • 并需要分配新数据:Final_data = Final_data.append(df1)
  • 另外,应该使用pd.concat()而不是df.append(),看我的回答

标签: python pandas dataframe


【解决方案1】:

您需要将新数据分配给现有的 df Final_data。此外,不推荐使用方法df.append()。应该改用pd.concat()

import pandas as pd

Final_data = pd.DataFrame()

for name in Image_list:
    df1 = df[df['ID']==name]
    print(df1.shape)
    Final_data = pd.concat([Final_data, df1])

print(Final_data.shape)

【讨论】:

    猜你喜欢
    • 2020-02-29
    • 2021-11-28
    • 2021-12-09
    • 2019-05-11
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 2016-10-14
    相关资源
    最近更新 更多