2017-06-29 53 views
1

我有一個變量,格式爲fg = 2017-20。這是一個字符串。同時,我有一個數據幀:在列中找到值並根據它在熊貓中創建一個新的數據幀

flag  № 
2017-18 389 
2017-19 390 
2017-20 391 
2017-21 392 
2017-22 393 
2017-23 394 
... 

我需要找到列"flag"這個值(fg),並選擇在列"№"適當的值(在本例中這將是391)。然後創建新的數據框,其中還會有一列"№"。將此值添加到此數據框並重復53次。結果應該是這樣的:

№_new 
    391 
    392 
    393 
    394 
    395 
    ... 
    442 
    443 
    444 

這看起來不難,但我找不到任何合適的基於其他問題。有人可以提供任何建議嗎?

+0

爲什麼53次?它是'DataFrame'的長度嗎? – jezrael

回答

1

您需要boolean indexingloc過濾,然後將一個項目Series通過轉換爲標量由values到numpy的數組,並[0]選擇第一個值。

最後創建新的DataFramenumpy.arange

fg = '2017-20' 
val = df.loc[df['flag'] == fg, '№'].values[0] 
print (val) 
391 

df1 = pd.DataFrame({'№_new':np.arange(val, val+53)}) 
print (df1) 
    №_new 
0  391 
1  392 
2  393 
3  394 
4  395 
5  396 
6  397 
7  398 
8  399 
9  400 
10 401 
11 402 
.. 
.. 
+1

我想,OP的意思,更像'np.arange(val,val + 53)'?不太確定壽。 – Zero

+0

@JohnGalt - 謝謝,你是對的。 – jezrael

相關問題