我有一個庫存系統,在一個字串中包含兩個單獨的 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)
它顯然不起作用,我得到了一個龐大的串列。
uj5u.com熱心網友回復:
如果您需要npandas 列中字串的第一個/最后一個字符的串列,您可以嘗試:
# 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]
uj5u.com熱心網友回復:
假設你有一個 pandas DataFrame,你可以使用 pandas 方法來獲得你想要的結果。在將True傳遞給引數時str.split在列上使用方法,以便將字串拆分為單獨的列。'Skus'expand
skus_split = df['Skus'].str.split('-', expand=True)
然后skus_split是一個看起來像這樣的 DataFrame:
0 1
1 FT3M FL3M
2 FT2M FL2M
3 FT1M FB1M
4 FT4S FL4S
5 FT4S FB2M
請注意,列是每個字串0之前的部分,列是每個字串之后的部分。'-'1'-'
然后要獲取您想要的串列,請選擇每一列并用于tolist轉換為串列:
first_list = skus_split[0].tolist()
second_list = skus_split[1].tolist()
然后first_list看起來像:
['FT3M', 'FT2M', 'FT1M', 'FT4S', 'FT4S']
和second_list:
['FL3M', 'FL2M', 'FB1M', 'FL4S', 'FB2M']
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/413408.html
標籤:
上一篇:FLUTTER/DARTLISTS-如何檢查串列中包含的元素序列是否以相同的順序存在于另一個串列中?
下一篇:將集合串列轉換為列
