我对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的任何帮助都非常感谢!感谢。
答案 0 :(得分:2)
试试这个:
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)
答案 1 :(得分:1)
<audio id="mytrack" controls autoplay>
<source src="https://upload.wikimedia.org/wikipedia/commons/6/6e/Micronesia_National_Anthem.ogg" type="audio/ogg">
</audio>
<span id="fullDuration">0:00</span>