Python Pandas-如何在字符串中提取左边的一系列字符

时间:2018-08-05 17:17:07

标签: python regex pandas dataframe

我们有这个:

def get_prices():
    prices = pd.read_json("https://api.binance.com/api/v1/ticker/allPrices")
    prices_df = pd.DataFrame(prices)
    prices_df["Asset"] = "??"
    prices_df["Quote"] = prices_df["symbol"].str.extract(r"(USDT|BTC|ETH|BNB)$")
    return prices_df

返回此:

       price   symbol Asset Quote
0  0.0578730   ETHBTC    ??   BTC
1  0.0105800  LTCUSDT    ??  USDT
2  0.0019219    NBBTC    ??   BTC
3  0.0038840   NEOBNB    ??   BNB
4  0.0157500  QTUMETH    ??   ETH

这里的“符号”是由“资产” +“报价”组成的一对,没有任何分隔,并且每个都有不同的长度。但是我们知道Quote符号只能是4:“ USDT”,“ BTC”,“ ETH”,“ BNB”。

我们如何定义数据框中的“资产”列?

1 个答案:

答案 0 :(得分:1)

在给出所有可能后缀的列表后,您可以使用正则表达式提取前缀:

pattern = '(\w+)(USDT|BTC|ETH|BNB)$'
df[['Asset','Quote']] = df['symbol'].str.extract(pattern)