Я просто попытался отредактировать это, но я не был зарегистрирован, поэтому не знаю, где мое редактирование. Я пытался включить множественный выбор. Поэтому я думаю, что лучший ответ:
. Для одного значения наиболее простым (читаемым человеком), вероятно, является:
df.loc[df['column_name'] == some_value]
Для списков значений вы также можете использовать:
df.loc[df['column_name'].isin(some_values)]
Например,
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
'B': 'one one two three two two one three'.split(),
'C': np.arange(8), 'D': np.arange(8) * 2})
print(df)
# A B C D
# 0 foo one 0 0
# 1 bar one 1 2
# 2 foo two 2 4
# 3 bar three 3 6
# 4 foo two 4 8
# 5 bar two 5 10
# 6 foo one 6 12
# 7 foo three 7 14
print(df.loc[df['A'] == 'foo'])
дает
A B C D
0 foo one 0 0
2 foo two 2 4
4 foo two 4 8
6 foo one 6 12
7 foo three 7 14
Если у вас есть несколько критериев, которые вы хотите выбрать, вы можете поместить их в список и использовать 'isin':
print(df.loc[df['B'].isin(['one','three'])])
дает
A B C D
0 foo one 0 0
1 bar one 1 2
3 bar three 3 6
6 foo one 6 12
7 foo three 7 14
Обратите внимание, однако, что если вы хотите сделать это много раз, более эффективно сделать A сначала индекс, а затем используйте df.loc:
df = df.set_index(['A'])
print(df.loc['foo'])
дает
A B C D
foo one 0 0
foo two 2 4
foo two 4 8
foo one 6 12
foo three 7 14
Это значением согласно Документация PHP .
По умолчанию, аргументы функции передаются значением (так, чтобы, если значение аргумента в функции изменяется, это не становилось измененным за пределами функции). Чтобы позволить функции изменять свои аргументы, они должны быть переданы ссылкой.
Для имения аргумента функции, всегда передаваемой ссылкой, предварительно ожидайте амперсанд ( & ) к имени аргумента в функциональном определении.
<?php
function add_some_extra(&$string)
{
$string .= 'and something extra.';
}
$str = 'This is a string, ';
add_some_extra($str);
echo $str; // outputs 'This is a string, and something extra.'
?>
Зависит от версии, 4 значением, 5 ссылкой.
Переменные, содержащие типы примитивов, передаются значением в PHP5. Переменные, содержащие объекты, передаются ссылкой. Существует вполне интересная статья из Журнала Linux с 2006, который упоминает это и другие различия OO между 4 и 5.
Переменные PHP присвоены значением, переданным функциям значением, и когда содержащий/представляющий объекты передаются ссылкой. Можно вынудить переменные передать ссылкой с помощью &
Присвоенный значением/справочным примером:
$var1 = "test";
$var2 = $var1;
$var2 = "new test";
$var3 = &$var2;
$var3 = "final test";
print ("var1: $var1, var2: $var2, var3: $var3);
произвел бы
var1: тест, var2: завершающее испытание, var3: завершающее испытание
Переданный значением/ссылкой exampe:
$var1 = "foo";
$var2 = "bar";
changeThem($var1, $var2);
print "var1: $var1, var2: $var2";
function changeThem($var1, &$var2){
$var1 = "FOO";
$var2 = "BAR";
}
произвел бы:
var1: нечто, var2 ПАНЕЛЬ
Переменные объекта, переданные ссылкой exampe:
class Foo{
public $var1;
function __construct(){
$this->var1 = "foo";
}
public function printFoo(){
print $this->var1;
}
}
$foo = new Foo();
changeFoo($foo);
$foo->printFoo();
function changeFoo($foo){
$foo->var1 = "FOO";
}
произвел бы:
НЕЧТО
(что последний пример мог быть лучше, вероятно...)
http://www.php.net/manual/en/migration5.oop.php
В PHP 5 существует новая Объектная модель. Обработка PHP объектов была полностью переписана, допуская лучшую производительность и больше функций. В предыдущих версиях PHP объекты были обработаны как типы примитивов (например, целые числа и строки). Недостаток этого метода состоял в том, что семантически целый объект был скопирован, когда переменная была присвоена или передана в качестве параметра методу. В новом подходе на объекты ссылается дескриптор, а не значением (можно думать о дескрипторе как об идентификаторе объекта).
Кажется, что много людей запутывается способом, которым объекты передаются функциям и что передача ссылочными средствами. Переменные объекта все еще передаются значением, его просто значение, которое передается в PHP5, является ссылочным дескриптором. Как доказательство:
<?php
class Holder {
private $value;
public function __construct($value) {
$this->value = $value;
}
public function getValue() {
return $this->value;
}
}
function swap($x, $y) {
$tmp = $x;
$x = $y;
$y = $tmp;
}
$a = new Holder('a');
$b = new Holder('b');
swap($a, $b);
echo $a->getValue() . ", " . $b->getValue() . "\n";
Выводы:
a, b
К передача ссылкой средства мы можем изменить переменные, которые замечены вызывающей стороной. Который ясно выше не делает код. Мы должны изменить функцию подкачки на:
<?php
function swap(&$x, &$y) {
$tmp = $x;
$x = $y;
$y = $tmp;
}
$a = new Holder('a');
$b = new Holder('b');
swap($a, $b);
echo $a->getValue() . ", " . $b->getValue() . "\n";
Выводы:
b, a
для передачи ссылкой.
Можно сделать это так или иначе.
помещает '&'; символ впереди и переменная, Вы являетесь передающими, становятся одними и теми же как свой источник. т.е.: можно передать ссылкой, вместо того, чтобы делать копию из него.
так
$fred = 5;
$larry = & $fred;
$larry = 8;
echo $fred;//this will output 8, as larry and fred are now the same reference.
Объекты пропускаются посредством ссылки в PHP 5 и по значению в PHP 4. Переменные передаются по значению по умолчанию!
Читайте здесь: http://www.webeks.net/programming/php/appersand-operator-used-formizonsigning-Reference.html
class Holder
{
private $value;
public function __construct( $value )
{
$this->value = $value;
}
public function getValue()
{
return $this->value;
}
public function setValue( $value )
{
return $this->value = $value;
}
}
class Swap
{
public function SwapObjects( Holder $x, Holder $y )
{
$tmp = $x;
$x = $y;
$y = $tmp;
}
public function SwapValues( Holder $x, Holder $y )
{
$tmp = $x->getValue();
$x->setValue($y->getValue());
$y->setValue($tmp);
}
}
$a1 = new Holder('a');
$b1 = new Holder('b');
$a2 = new Holder('a');
$b2 = new Holder('b');
Swap::SwapValues($a1, $b1);
Swap::SwapObjects($a2, $b2);
echo 'SwapValues: ' . $a2->getValue() . ", " . $b2->getValue() . "<br>";
echo 'SwapObjects: ' . $a1->getValue() . ", " . $b1->getValue() . "<br>";
Атрибуты все еще можно изменять, если они не передаются по ссылке, поэтому будьте осторожны.
Выход:
Поменяйте местами объекты: b, a SwapValues: a, b