遍历一列并根据 PANDAS 数据框中另一列的值将值添加到列表

莱格

我有一个遵循此屏幕截图的数据框:

在此处输入图片说明

我想编写一个脚本,将df['value']. 添加值的此列表取决于月份编号。所以预期的输出是:

jan = [2345]
feb = [435]
mar = [976,76]
apr = [65,55,33]
may = [61]
jun = [658]
jul = [65]
nov = [3]
dec = [56]

真正的 df 更复杂,但问题是可以转移的。我写这个脚本没有运气:

    jan = []
    feb = []
    mar = []
    apr = []
    may = []
    jun = []
    jul = []
    aug = []
    sep = []
    octo = []
    nov = []
    dec = []
    for ind,i in yr18_df.iterrows():
          if i == 1:
            jan.append(yr18_df.points)
        else i == 2:
            feb.append(yr18_df.points)
        elif yr18_df.date_month == 3:
            mar.append(yr18_df.points)
        elif yr18_df.date_month == 4:
            apr.append(yr18_df.points)
        elif yr18_df.date_month == 5:
            may.append(yr18_df.points)
        elif yr18_df.date_month == 6:
            jun.append(yr18_df.points)
        elif yr18_df.date_month == 7:
            jul.append(yr18_df.points)
        elif yr18_df.date_month == 8:
            aug.append(yr18_df.points)
        elif yr18_df.date_month == 9:
            sep.append(yr18_df.points)
        elif yr18_df.date_month == 10:
            octo.append(yr18_df.points)
        elif yr18_df.date_month == 11:
            nov.append(yr18_df.points)
        else:
            dec.append(yr18_df.points)
玛雅克·波瓦尔

像这样也许:

考虑以下示例数据框:

In [2368]: df = pd.DataFrame({'value':[2345,123,282,367,213], 'month':[1,2,9,1,2]})                                                                                                                         

In [2369]: df                                                                                                                                                                                               
Out[2369]: 
   value  month
0   2345      1
1    123      2
2    282      9
3    367      1
4    213      2

In [2374]: import calendar                                                                                                                                                                                  

In [2375]: df['month_name'] = df['month'].apply(lambda x: calendar.month_abbr[x])                                                                                                                           

In [2384]: month_dict = df.groupby('month_name')['value'].apply(list).to_dict()                                                                                                                                          

In [2386]: for key, val in month_dict.items(): 
  ...:     print(key,val) 
  ...:                                                                                                                                                                                                  
Feb [123, 213]
Jan [2345, 367]
Sep [282]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Pandas / Python:根据另一列中的值设置一列的值

根据Pandas中另一列的值范围汇总一列的内容

如何根据另一列的时间将列添加到pandas数据框

根据另一列(Python,Pandas)中的值删除一列的重复项

Pandas数据框:根据另一列中的值替换多行

Pandas groupby:根据另一列中的值更改一列中的值

根据另一列的值将列添加到pandas数据框中

用pandas数据框另一列中的值替换空列表

Pandas数据框:根据另一列中的值操纵列(无需遍历行)

pandas np.where根据csv中另一列中的值在另一列中添加值

根据列表或另一列中的值在Pandas数据框中动态选择列

根据另一列中的值将值添加到熊猫数据框的一列中

根据另一列中的值对pandas数据框中的列进行归一化

Python将列添加到Pandas数据框中,这是另一列中的列表元素的计数

将列添加到 Pandas 数据框并遍历其中一列

pandas - 根据另一列更改列中的值

如何将“$”添加到我的 Pandas 数据框值并使用一列作为索引?

根据pandas数据框中另一列的条件将int64值替换为“None”

“是否有 Pandas 函数可以根据数据框另一列的某些值添加新列?”

根据参考 [Excel] 将一列中的值添加到另一列

根据另一列的值替换 Pandas 数据框中的特定值

从另一列创建一列列表,并在 Pandas 数据框中仅显示唯一值

Pandas 数据框 - 将前一列中与特定条件匹配的所有值相加并将其添加到新列中

根据另一列中的条件在 Pandas 数据框中设置值

如何根据 Pandas 数据框中另一列的条件将值填充到新列中?

将列添加到基于 R 中的字符列表对另一列中的值求和的数据框

使用列表值将另一列值附加到 Pandas 列

根据另一行中的 100 个值是否小于 x 在 pandas 数据框中添加一列

根据另一列中的字符串值在 pandas 数据框中修改一列