python - 在第一次出现 '-' 时拆分列

标签 python pandas

我有一个 pandas 数据框,其中包含门牌号和后缀的列。门牌号和后缀由“-”分隔,尽管许多后缀也包含“-”。

我试过这个:

df house_nr(x):
    y = x['house_nr'].split('-', maxsplit = 1)
    return y

df['suffix'] = df.apply(house_nr, axis=1)

出现以下错误:

KeyError: ('house_nr', 'occurred at index 0')

经过一些其他尝试,我已经开始工作了:

df2 = pd.DataFrame(df['house_nr'].str.split('-',1).tolist(),columns = ['house-number','suffix'])

然后我加入数据框,但我认为这个解决方案不是很好或 pythonic。

最佳答案

设置

df = pd.DataFrame({'house_nr': ['123-Rd-thing', '456-House', '567-House-thing']})

          house_nr
0     123-Rd-thing
1        456-House
2  567-House-thing

使用列表理解和拆分,这将比 pandas 字符串方法更快:

pd.DataFrame([i.split('-', 1) for i in df.house_nr], columns=['num', 'suffix'])

   num       suffix
0  123     Rd-thing
1  456        House
2  567  House-thing

关于python - 在第一次出现 '-' 时拆分列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51863837/

相关文章:

python - 神经网络关于输入的导数

python - 正确使用 PyQt 信号

python - 在 matplotlib 中绘制 10 负幂的 xscale

mysql - 从文件或本地表获取 SQL QUERY 的 WHERE IN 过滤器的输入列表

python - 将值替换为总行中的百分比

python - 内嵌图像周围的框架

python - 用于捕获和替换模式中数字的正则表达式

python - 如何在JS代码中正确使用gettext?

python - DataFrame 中的几何平均值

python - 一起使用 groupby ("1d") 和 first_valid_index