我有一個資料框,其中有一列帶有專案名稱,一列帶有數字。我想創建一個串列,其中專案名稱在列中重復了多次。
| 物品 | 數字 |
|---|---|
| 貓 | 2 |
| 狗 | 3 |
| 鸚鵡 | 4 |
我想要的輸出是
| 物品 |
|---|
| 貓 |
| 貓 |
| 狗 |
| 狗 |
| 狗 |
| 鸚鵡 |
| 鸚鵡 |
| 鸚鵡 |
| 鸚鵡 |
我覺得我很接近這段代碼:
for index in df.iterrows():
for x in range(2):
print(df.item)
但是,我找不到用資料框外的數字替換 2 in range 的方法。df.numbers 似乎不起作用。
uj5u.com熱心網友回復:
正如你所說,你想要的輸出是 a list,使用@Michael的評論,你可以這樣做:
list(df.item.repeat(df.number))
輸出將是:
['cat', 'cat', 'dog', 'dog', 'dog', 'parrot', 'parrot', 'parrot', 'parrot']
uj5u.com熱心網友回復:
如果您熱衷于使用,.iterrows()那么您可能會執行以下操作:
import pandas
df = pandas.DataFrame([
{"item": "cat", "number": 2},
{"item": "dog", "number": 3},
{"item": "parrot", "number": 4},
])
new_list = []
for index, row in df.iterrows():
new_list.extend([row["item"]] * row["number"])
print(new_list)
這取決于以下事實["x"] * 3 === ["x", "x", "x"]
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/441249.html
