[英]how to add values to certain index in column in pandas dataframe (python)
我有一個像這樣的 dataframe (結果):
指數 | 結果 |
---|---|
0 | 1 |
1 | -1 |
2 | 1 |
我有另一個 dataframe (信號)是這樣的:
指數 | 信號 |
---|---|
0 | 200 |
1 | 300 |
2 | 250 |
3 | 450 |
4 | 345 |
5 | 534 |
我想在信號中添加一列,以便結果中的值將在該列中復制兩次,例如
指數 | 信號 | 結果 |
---|---|---|
0 | 200 | 1 |
1 | 300 | 1 |
2 | 250 | -1 |
3 | 450 | -1 |
4 | 345 | 1 |
5 | 534 | 1 |
注意:結果中索引 0 的 1 在信號的索引 0 和 1 中復制兩次,依此類推。 我該怎么做 go?
IIUC,您只想重復兩次results
並將其分配給signals
中的一列,對嗎? 在這種情況下,您可以使用np.repeat
:
import numpy as np
signals['results'] = np.repeat(results['results'].to_numpy(), 2)
Output:
index signals results
0 0 200 1
1 1 300 1
2 2 250 -1
3 3 450 -1
4 4 345 1
5 5 534 1
@mozway 的答案比我的更相關,因為他使用Series.repeat
而不是Index.repeat
。 @Manlai 的回答也很有趣。
使用Index.repeat
:
n = len(signals) // len(results) # twice
signals['results'] = results.reindex(results.index.repeat(n)).to_numpy()
print(signals)
# Output
signals results
0 200 1
1 300 1
2 250 -1
3 450 -1
4 345 1
5 534 1
保持簡單,只需使用 Series 的repeat
方法:
n = len(signals) // len(results)
signals['results'] = result['results'].repeat(n).to_numpy()
output:
index signals results
0 0 200 1
1 1 300 1
2 2 250 -1
3 3 450 -1
4 4 345 1
5 5 534 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.