【问题标题】:Python Pandas - How to extract the left a series of characters in a stringPython Pandas - 如何提取字符串中左侧的一系列字符
【发布时间】:2019-01-12 18:16:01
【问题描述】:

我们有这个:

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

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

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

【问题讨论】:

    标签: python regex pandas dataframe


    【解决方案1】:

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

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

    【讨论】:

    • 更新了答案以同时计算两列。
    猜你喜欢
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 2023-02-25
    • 2018-01-08
    • 2020-08-14
    • 2019-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多