【问题标题】:How to append the last 4 letters of every item in a dataframe column to a list如何将数据框列中每个项目的最后 4 个字母附加到列表中
【发布时间】:2022-01-13 23:01:11
【问题描述】:

我有一个库存系统,在一个字符串中包含两个单独的 SKU,例如 (FT3M-FL3M),我想创建一个名为“first_item”的列表并将前 4 个字母(第一个 SKU)附加到它并为列中的每一项。 然后做同样的事情,但取每个字符串的最后 4 位数字(第二个 SKU)

这是示例数据框

| Index    | Skus           |
| -------- | -------------- |
| First    | FT3M-FL3M      |
| Second   | FT2M-FL2M      |
| Second   | FT1M-FB1M      |
| Second   | FT4S-FL4S      |
| Second   | FT4S-FB2M      |

这是我的代码:

first_list = []
for i in sku:
first_list.append(i[0:4])
print(first_list)

这显然不起作用,我得到了一个庞大的列表。

【问题讨论】:

  • 尽量避免循环遍历整个 DataFrame,因为如果您的数据集更大,有更快的方法来做到这一点。像这样,如果你的 DataFrame 被称为“sku”:sku["Skus"].str[:4].tolist()

标签: python list append


【解决方案1】:

如果您需要 pandas 列中字符串的第一个/最后一个 n 字符列表,您可以尝试:

# first
my_first = [x[:4] for x in df.wanted_column]

# last
my_last = [x[-4:] for x in df.wanted_column]

这使您可以在需要时动态过滤列表,例如:

my_filtered = my_first = [x[:4] for x in df.wanted_column if 'some_sku' not in x]

【讨论】:

  • 非常感谢乔纳斯!这几乎解决了它
  • 如果您对答案感到满意,您可以投票并接受它,也可以在您的问题下方投票给 cmets。乐于助人!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-31
  • 1970-01-01
  • 2020-07-30
  • 1970-01-01
  • 2022-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多