如何对.iterrows()值排序?

2024-05-23 20:36:04 发布

您现在位置:Python中文网/ 问答频道 /正文

关于这个话题我似乎找不到答案。我正在尝试对查询集中的值进行排序。现在,自动按股票代码排序:

TICKER_id
DXJ    -0.5
EWA     1.0
EWC     0.0
EWG    -1.0
EWI    -0.5
EWP    -0.5
EWQ     0.5
EWU     0.0
EWW    -0.5
EWY    -1.0
EWZ     0.5
EZA     0.5
FEZ    -0.5
INDA    0.0
MCHI   -0.5
RSX     0.5
SPY     0.0
TUR    -0.5

我觉得好像有一种方法可以通过使用.iterrows()遍历列表来进行排序。在


Tags: 答案id排序股票代码ticker话题ewqewp
2条回答

也许你只需要.sort_values()?在

dat.sort_values()或{}

据我所知,Pandas使用索引来控制itterows,因此将返回正常顺序,即使您已重新调用dataframe,因为索引与行一起。在

我已经能够按预定的顺序通过resetting the index对df进行迭代:

#%%
import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame(
    [
        {"TICKER_id": "DXJ", "val": -0.5},
        {"TICKER_id": "EWA", "val": 1.0},
        {"TICKER_id": "EWC", "val": 0.0},
        {"TICKER_id": "EWG", "val": -1.0},
        {"TICKER_id": "EWI", "val": -0.5},
        {"TICKER_id": "EWP", "val": -0.5},
        {"TICKER_id": "EWQ", "val": 0.5},
        {"TICKER_id": "EWU", "val": 0.0},
        {"TICKER_id": "EWW", "val": -0.5},
        {"TICKER_id": "EWY", "val": -1.0},
        {"TICKER_id": "EWZ", "val": 0.5},
        {"TICKER_id": "EZA", "val": 0.5},
        {"TICKER_id": "FEZ", "val": -0.5},
        {"TICKER_id": "INDA", "val": 0.0},
        {"TICKER_id": "MCHI", "val": -0.5},
        {"TICKER_id": "RSX", "val": 0.5},
        {"TICKER_id": "SPY", "val": 0.0},
        {"TICKER_id": "TUR", "val": -0.5},
    ]
)

df.plot() # 1

#%%
df.sort_values(by="val", ascending=False, inplace=True)
df.reset_index(drop=True, inplace=True)
df.plot() # 2

#%%
for index, row in df.iterrows():
    if len(row.TICKER_id) == 3:
        plt.scatter(index,row.val, c="r")
    else:
        plt.scatter(index,row.val, c="b") # 3

这样可以得到: 1enter image description here 2enter image description here 三。enter image description here

This question is related to this。在

相关问题 更多 >