【问题标题】:pandas Generate Data Frames by looping through names in a listpandas 通过遍历列表中的名称来生成数据框
【发布时间】:2020-05-01 20:02:47
【问题描述】:

您好,我正在尝试创建一个循环来自动化下面的代码

jacob = WT[(WT.Techs == 'JL') | (WT.Tech1 =='JL') | (WT.Tech2 =='JL') | (WT.Tech3 =='JL')]
marcus = WT[(WT.Techs == 'MO') | (WT.Tech1 =='MO') | (WT.Tech2 =='MO') | (WT.Tech3 =='MO')]

我尝试了以下代码,但它只为“name”而不是“jacob”或“marcus”生成一个数据框,并且只为列表中的姓氏生成一个数据框。

name = ('jacob', 'marcus')
tec = ('JL', 'MO')

for i in tec:
   name  = WT[(WT.Techs == i) | (WT.Tech1 == i) | (WT.Tech2 == i) | (WT.Tech3 == i)]

如何生成以名称中的名称和tec 中的特定首字母命名的数据框?

谢谢!

【问题讨论】:

  • jacob, marcus = [WT[WT[['Techs', 'Tech1','Tech2','Tech3']].eq(tec).all(1)] for tec in ('JL', 'MO')]?
  • @QuangHoang 如果名称未知,这将不起作用

标签: python pandas dataframe for-loop jupyter-notebook


【解决方案1】:

尝试使用如下代码的字典理解:

d = {x: WT[WT[['Techs', 'Tech1','Tech2','Tech3']].eq(y).all(1)] for x, y in zip(name, tec)]

称呼它:

print(d['jacob'])
pritn(d['marcus'])

【讨论】:

  • 我试过了,现在可以为每个获取一个数据框。但是,每个数据框都是空的。结果输出是“Empty DataFrame Columns: [Project, Week, Techs, Tech1, Tech2, Tech3, MilesCovered, DaysSpent, TotalHours, TotTechs, MilesPerTech] Index: []”
猜你喜欢
  • 1970-01-01
  • 2019-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-16
  • 2017-12-03
  • 2021-05-13
相关资源
最近更新 更多