답변:
이를위한 플래그가 있습니다.
In [11]: df = pd.DataFrame([["foo1"], ["foo2"], ["bar"], [np.nan]], columns=['a'])
In [12]: df.a.str.contains("foo")
Out[12]:
0 True
1 True
2 False
3 NaN
Name: a, dtype: object
In [13]: df.a.str.contains("foo", na=False)
Out[13]:
0 True
1 True
2 False
3 False
Name: a, dtype: bool
str.replace문서를 참조하십시오 .
na : 기본 NaN, 결 측값 채우기.
따라서 다음을 수행 할 수 있습니다.
In [21]: df.loc[df.a.str.contains("foo", na=False)]
Out[21]:
a
0 foo1
1 foo2
df.loc뿐만 아니라 df?
나는 왜 (실제로 답을 찾기 위해 여기에 왔음) 100 %는 아니지만 이것도 작동하며 모든 nan 값을 바꿀 필요가 없습니다.
import pandas as pd
import numpy as np
df = pd.DataFrame([["foo1"], ["foo2"], ["bar"], [np.nan]], columns=['a'])
newdf = df.loc[df['a'].str.contains('foo') == True]
또는없이 작동합니다 .loc.
괄호로 인덱싱 할 때 이해하기 때문에 이것이 왜 작동하는지 모르겠습니다. pandas는 괄호 안에있는 것이 무엇이든 True또는 False. 괄호 안에 '추가 부울'이라는 문구를 만드는 것이 왜 효과가 있는지 알 수 없습니다.
또한 patern 수 있습니다.
DF[DF.col.str.contains(pat = '(foo)', regex = True) ]
import folium
import pandas
data= pandas.read_csv("maps.txt")
lat = list(data["latitude"])
lon = list(data["longitude"])
map= folium.Map(location=[31.5204, 74.3587], zoom_start=6, tiles="Mapbox Bright")
fg = folium.FeatureGroup(name="My Map")
for lt, ln in zip(lat, lon):
c1 = fg.add_child(folium.Marker(location=[lt, ln], popup="Hi i am a Country",icon=folium.Icon(color='green')))
child = fg.add_child(folium.Marker(location=[31.5204, 74.5387], popup="Welcome to Lahore", icon= folium.Icon(color='green')))
map.add_child(fg)
map.save("Lahore.html")
Traceback (most recent call last):
File "C:\Users\Ryan\AppData\Local\Programs\Python\Python36-32\check2.py", line 14, in <module>
c1 = fg.add_child(folium.Marker(location=[lt, ln], popup="Hi i am a Country",icon=folium.Icon(color='green')))
File "C:\Users\Ryan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\folium\map.py", line 647, in __init__
self.location = _validate_coordinates(location)
File "C:\Users\Ryan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\folium\utilities.py", line 48, in _validate_coordinates
'got:\n{!r}'.format(coordinates))
ValueError: Location values cannot contain NaNs, got:
[nan, nan]
a에 CSV로 채워진 상황이 있었고a열에 "nan"문자열이 포함되어 있습니다.pandas"지능적으로"이것을로 변환NaN하고 내가하려고 할 때 불평하기 시작했습니다df.a.str.contains(). 그래서 예 protip : 열 유형을 설정read_csv()하거나 나중에df = df.where(pandas.notnull(df), "nan")LOL 과 같은 것을하십시오