【问题标题】:set new values in column based on condition根据条件在列中设置新值
【发布时间】:2023-01-13 16:46:29
【问题描述】:

我有这个DF

MARQUE  SAIS_COLL   TOURNEE ANNEE_COLL  SAISON  LIB_SAISON  DESIGNATION NUM_TAIL    TAILLE  PROFONDEUR  TAILLE_3    COL COLORIS ARTICLE EAN TARIF   DIVISION_COMMERCIALE    artkleurcode
0   ATG BA  0   2023    56B LA MUSE AFRICA  BANDEAU COQUE B T3  85  B   85B 13006   JA/JAUNE AFRICA EBB7156B    3597707754826   31.39   E9  EBB7156-13006
1   ATG BA  0   2023    56B LA MUSE AFRICA  BANDEAU COQUE B T4  90  B   90B 13006   JA/JAUNE AFRICA EBB7156B    3597707754833   31.39   E9  EBB7156-13006
2   ATG BA  0   2023    56B LA MUSE AFRICA  BANDEAU COQUE B T5  95  B   95B 13006   JA/JAUNE AFRICA EBB7156B    3597707754840   31.39   E9  EBB7156-13006
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
8   ATG BA  0   2023    56B LA MUSE AFRICA  BANDEAU COQUE D T3  85  D   85D 13006   JA/JAUNE AFRICA EBB7156D    3597707755021   32.89   E9  EBB7156-13006
9   ATG BA  0   2023    56B LA MUSE AFRICA  BANDEAU COQUE D T4  90  D   90D 13006   JA/JAUNE AFRICA EBB7156D    3597707755038   32.89   E9  EBB7156-13006
10  ATG BA  0   2023    56B LA MUSE AFRICA  BANDEAU COQUE D T5  95  D   95D 13006   JA/JAUNE AFRICA EBB7156D    3597707755045   32.89   E9  EBB7156-13006

我尝试仅将“TAILLE”列中的值更改为旧值 15 的新值 >60。问题是该列具有 int 和 str 值。

我试过了

dct_of_sizes = {80: 65,
 85: 70,
 90: 75,
 95: 80,
 100: 85,
 105: 90,
 110: 95,
 115: 100,
 120: 105,
 125: 110,
 1: 1,
 2: 2,
 3: 3,
 4: 4,
 5: 5,
 6: 6,
 'XS': 'XS',
 'S': 'S',
 'M': 'M',
 'L': 'L',
 'XL': 'XL',
 'XXL': 'XXL',
 'T.U': 'ONE'}

df['TAILLE'] = df['TAILLE'].astype(str).map(dct_of_sizes)

但这不起作用

TAILLE 是第 9 列

怎么解决?

【问题讨论】:

  • df 中的 TAILLE 列在哪里?

标签: python pandas conditional-formatting


【解决方案1】:

第一种方式:

import numpy as np

my_list = np.array(df['TAILLE'])
my_list_1 = []

for i in my_list:
  if type(i) is int:
    my_list_1.append(i-15)
  else:
    my_list_1.append(i)

df['TAILLE'] = my_list_1

第二种方式:

for index, row in df.iterrows():
  if type(df['TAILLE'][index]) is int:
    df['TAILLE'][index] = df['TAILLE'][index] - 15

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-12
    • 1970-01-01
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2021-07-30
    相关资源
    最近更新 更多