gpt4 book ai didi

python - 使用 Pandas 分配方法拆分字符串并分配给两列

转载 作者:行者123 更新时间:2023-12-05 03:17:37 26 4
gpt4 key购买 nike

如果使用以下 DataFrame,我可以拆分“ccy”字符串并创建两个新列:

df_so = pd.DataFrame.from_dict({0: 'gbp_usd',
1: 'eur_usd',
2: 'usd_cad',
3: 'usd_jpy',
4: 'eur_usd',
5: 'eur_usd'},orient='index',columns=["ccy"])

df_so[['base_ccy', 'quote_ccy']] = df_so['ccy'].str.split('_', 1, expand=True)

给出以下 DataFrame。

<表类="s-表"><头>索引周期base_ccyquote_ccy<正文>0英镑美元英镑美元1欧元美元欧元美元2美元加元美元CAD3美元日元美元日元4欧元美元欧元美元5欧元美元欧元美元

如何使用 DataFrame.assign 执行相同的 str.split在我下面的调整功能中?

我可以通过列表推导来获得相同的结果,但是有没有更简单/更清晰的方法使用赋值?:

def tweak_df (df_):
return (df_.assign(base_currency= lambda df_: [i[0] for i in df_['ccy'].str.split('_', 1)],
quote_currency= lambda df_: [i[1] for i in df_['ccy'].str.split('_', 1)],
)
)
tweak_df(df_so)

结果与上表相同,但代码不是很直观,简单总比复杂好。

最佳答案

可能的解决方案:

df_so.assign(**tweak_df(df_so))

输出:

       ccy base_ccy quote_ccy base_currency quote_currency
0 gbp_usd gbp usd gbp usd
1 eur_usd eur usd eur usd
2 usd_cad usd cad usd cad
3 usd_jpy usd jpy usd jpy
4 eur_usd eur usd eur usd
5 eur_usd eur usd eur usd

关于python - 使用 Pandas 分配方法拆分字符串并分配给两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74079204/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com