gpt4 book ai didi

python - 遍历 Pandas 数据框并将新值插入空列

转载 作者:太空宇宙 更新时间:2023-11-04 00:48:43 25 4
gpt4 key购买 nike

我对 Pandas 比较陌生,我无法遍历数据集中给定列中的值并找到包含特定字符串的单元格。

Address,City
['1234 Apple Drive', 'San Francisco', 'CA'],''
['4678 Bannana Street', 'Austin', 'TX'],''

对于此示例,我想 a) 仅提取 b) 包含字符串“Street”的地址的街道信息,以及 c) 将它们放入名为“Street”的新插入列中。

Address,City,Street
['1234 Apple Drive', 'San Francisco', 'CA'],'',''
['4678 Bannana Street', 'Austin', 'TX'],'','4678 Bannana Street'

我知道如何将新列插入到我的数据集中。到目前为止,我的代码如下所示(假设我当前的数据集只有两列和示例中的条目):

import numpy as np
import pandas as pd
from pandas import DataFrame, read_csv

df = pd.read_csv('dataset.csv', sep = '\t')
df.insert(loc=3, column = 'street', value=str)

我所拥有的其余部分并不漂亮,到目前为止都没有用。非常感谢任何有关执行 a、b 和 c 的帮助!谢谢。

最佳答案

试试这个:

import re

df = pd.DataFrame([['1234 Apple Drive', 'San Francisco', 'CA'],
['4678 Bannana Street', 'Austin', 'TX']],
columns=['Address', 'City', 'State'])

df['Street'] = df.Address.str.extract(r'([\S]+)\s+Street', flags=re.IGNORECASE)
print df

Address City State Street
0 1234 Apple Drive San Francisco CA NaN
1 4678 Bannana Street Austin TX Bannana

如果您还想包括街道号码:

import re

df[['Street Number', 'Street']] = df.Address.str.extract(r'(\S+)\s+(\S+)\s+Street', expand=True, flags=re.IGNORECASE)
print df

Address City State Street Number Street
0 1234 Apple Drive San Francisco CA NaN NaN
1 4678 Bannana Street Austin TX 4678 Bannana



注意事项

使用 pandas 0.18.1 如果我不指定 expand 标志,我会在未来收到警告。请改用它。

df['Street'] = df.Address.str.extract(r'([\S]+)\s+Street', expand=False, flags=re.IGNORECASE)

关于python - 遍历 Pandas 数据框并将新值插入空列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38129027/

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