URLEncoder
должен быть способом. Вам нужно только иметь в виду только кодировать только имя и / или значение имени строки запроса, а не весь URL-адрес, а не символ разделителя параметров строки запроса &
или имя параметра- символ разделителя значений =
.
String q = "random word £500 bank $";
String url = "http://example.com/query?q=" + URLEncoder.encode(q, "UTF-8");
Обратите внимание, что пробелы в параметрах запроса представлены +
, а не %20
, что является законно действительным. %20
обычно используется для представления пробелов в самом URI (часть перед символом разделителя строки URI-запроса ?
), а не в строке запроса (часть после ?
).
Также обратите внимание, что существует два метода encode()
. Один без аргумента набора символов и другой. Тот, у кого аргумент без аргумента, устарел. Никогда не используйте его и всегда указывайте аргумент charset. javadoc даже явно рекомендует использовать кодировку UTF-8, как это предусмотрено RFC3986 и W3C .
Все остальные символы небезопасны и сначала преобразуются в один или несколько байтов, используя некоторую схему кодирования. Затем каждый байт представлен 3-символьной строкой «% xy», где xy - двухзначное шестнадцатеричное представление байта. Рекомендуемой схемой кодирования для использования является UTF-8. Однако, по соображениям совместимости, если кодировка не указана, используется кодировка по умолчанию платформы.
См. Также:
Не drop
. Просто возьмите строки, где EPS
конечен:
df = df[np.isfinite(df['EPS'])]
Он может быть добавлен при этом '& amp;' может использоваться для добавления дополнительных условий, например
df = df[(df.EPS > 2.0) & (df.EPS <4.0)]
Обратите внимание, что при оценке утверждений панды нужны скобки.
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
. Вам нужно добавить круглые скобки - df = df[(df.EPS > 2.0) & (df.EPS <4.0)]
, но также это не ответ на этот вопрос.
– jezrael
16 March 2016 в 12:52
Вы можете использовать метод dataframe notnull или инвертировать isnull или numpy.isnan :
In [332]: df[df.EPS.notnull()]
Out[332]:
STK_ID RPT_Date STK_ID.1 EPS cash
2 600016 20111231 600016 4.3 NaN
4 601939 20111231 601939 2.5 NaN
In [334]: df[~df.EPS.isnull()]
Out[334]:
STK_ID RPT_Date STK_ID.1 EPS cash
2 600016 20111231 600016 4.3 NaN
4 601939 20111231 601939 2.5 NaN
In [347]: df[~np.isnan(df.EPS)]
Out[347]:
STK_ID RPT_Date STK_ID.1 EPS cash
2 600016 20111231 600016 4.3 NaN
4 601939 20111231 601939 2.5 NaN
Я знаю, что это уже было дан ответ, но только ради чисто пандского решения этого конкретного вопроса, в отличие от общего описания из Амана (что было замечательно), и в случае, если кто-то еще случится на этом:
import pandas as pd
df = df[pd.notnull(df['EPS'])]
df.dropna(subset=['EPS'])
(на основе общего описания Амана, конечно, это также работает)
– joris
23 April 2014 в 13:53
notnull
также является тем, что Wes (автор Pandas) предложил в своем комментарии к другому ответу.
– fantabolous
9 July 2014 в 04:24
еще одно решение, которое использует тот факт, что np.nan != np.nan
:
In [149]: df.query("EPS == EPS")
Out[149]:
STK_ID EPS cash
STK_ID RPT_Date
600016 20111231 600016 4.3 NaN
601939 20111231 601939 2.5 NaN
Вы можете использовать это:
df.dropna(subset=['EPS'], how='all', inplace = True)
how='all'
здесь избыточно, потому что вы подмножите данные только с одним полем, так что оба 'all'
и 'any'
будут иметь тот же эффект.
– Anton Protopopov
16 January 2018 в 13:41
По какой-то причине ни один из ранее представленных ответов не работал для меня. Это базовое решение:
df = df[df.EPS >= 0]
Хотя, конечно, это также приведет к потере строк с отрицательными номерами. Так что, если вы хотите, то это, вероятно, полезно добавить и после этого.
df = df[df.EPS <= 0]
Самый простой из всех решений:
filtered_df = df[df['EPS'].notnull()]
Вышеупомянутое решение лучше, чем использование np.isfinite ()
blockquote>
df.dropna(subset = ['column_name'])
. Надеюсь, что спасет хотя бы одного человека дополнительные 5 секунд «что я делаю неправильно». Отличный ответ, +1
– James Tobin
18 June 2014 в 15:07
pandas.notnull
вместоnp.isfinite
– Wes McKinney 21 November 2012 в 05:08EPS
в примере) содержит строки или другие типы, которые нельзя переваритьnp.isfinite()
. Я рекомендую использоватьpandas.notnull()
, который будет обрабатывать это более щедро. – normanius 5 April 2018 в 10:02