【问题标题】:extract some data from a huge dataset从庞大的数据集中提取一些数据
【发布时间】:2021-06-10 21:13:29
【问题描述】:

我有一个关于世界上 airbnb 的庞大数据集。 该数据集包含 5500 个城市。 我只想在“伦敦”、“巴黎”和“柏林”工作 所以从我原来的数据集名称'df' 我想创建一个新的数据集“filtered_df”,其中只有来自这 3 个城市的所有数据。 我有一个变量“城市”,所以我在下面尝试了这个,但没有按我的意愿工作。

df_berlin = df['City']== 'Berlin'

df_paris = df['City']== 'Paris'

df_london = df['City']== 'London'

filtered_df = [df_berlin + df_paris + df_london]

【问题讨论】:

  • 这并不奇怪。它只是将False 分配给所有三个过滤器变量并将它们相加得到[0]。你的数据集是什么格式的,你用什么框架来处理它?您可以使用内置的子集方法。
  • 也许你可以试试df_paris = df["Paris"]
  • 我的数据集是 CSV 格式,我正在使用 python 研究 jupiter。使用 df_paris = df["Paris"] 时出现关键错误,因为巴黎、伦敦和柏林位于“城市”列中
  • 我也是刚开始接触 Pandas,所以我不确定它是否正确,但是df[df.City=='Berlin'] 这样做了吗?
  • @pandawan 运行 df.head() 并在问题中添加输出。它将提供有关您的数据集的一些见解。我假设您已使用 read_csv() 将 csv 格式数据集转换为 pandas DataFrame。

标签: python


【解决方案1】:
df_berlin=df[df.City=='Berlin']
df_paris=df[df.City=='Paris']
df_london=df[df.City=='London']
filtered_df = df_berlin.append(df_paris.append(df_london))
filtered_df.sort_index(inplace=True,kind='mergesort')

我试图在一个小数据集上模拟它并且它有效,对于您的数据集,因为它很大,您可以使用合并排序,我猜它应该可以工作。

【讨论】:

  • 完美,非常感谢您的代码完美运行,您只是犯了一个小错误,.append(df_london) 而不是 .append(london)
  • 已更正:)
猜你喜欢
  • 1970-01-01
  • 2017-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多