假设我有以下数据框:
A B C D
0 foo one 1 10
1 bar one 2 20
2 foo two 3 30
3 bar one 4 40
4 foo two 5 50
5 bar two 6 60
6 foo one 7 70
7 foo two 8 80
Run Code Online (Sandbox Code Playgroud)
现在我可以按第一栏分组:grouped = df.groupby('A')
.结果我得到以下DataFrameGroupBy
对象:
A B C D
0 foo [one,two,two,one,two] [1,3,5,7,8] [10,30,50,70,80]
1 bar [one,one,two] [2,4,6] [20,40,60]
Run Code Online (Sandbox Code Playgroud)
现在我想访问特定单元格中的值.我该怎么做?例如,我想从列'D'和行'A'=='foo'
(第一行)中获取值.换句话说,我想得到[10,30,50,70,80]
.可能吗?
我想尝试使用库运行示例.在库的文档中写道,我需要将所有文件复制到我的目录中而不是键入make
.之后,我需要转到"Debug"文件夹并键入./lib_examples
以运行示例.
我执行了这个序列.因此,我有很多*.o
和*.d
文件中的"调试"子目录.其中有lib_examples.o
和lib_examples.h
文件.但是没有lib_example
我应该执行的文件.
有谁知道应该发生什么以及它出错了.我应该再做一步才能使用*.o
和*.d
文件吗?
解释如何std::bind
使用的一个简单示例如下:
假设我们有3个参数的函数:f3(x,y,z).我们想要一个2个参数的函数,定义为:f2(x,y) = f3(x,5,y)
.在C++中,我们可以轻松地执行以下操作std::bind
:
auto f2 = std::bind(f3, _1, 5, _2);
Run Code Online (Sandbox Code Playgroud)
这个例子对我很清楚:std::bind
将一个函数作为它的第一个参数,然后它接受另外两个参数,其中n是作为第一个参数的函数的参数个数std::bind
.
但是,我发现另一个使用bind:
void foo( int &x )
{
++x;
}
int main()
{
int i = 0;
// Binds a copy of i
std::bind( foo, i ) (); // <------ This is the line that I do not understand.
std::cout << i << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
很明显,foo
有一个论点,std::bind
并设置为i
.但是为什么我们之后又使用另一对括号(foo, i)
?为什么我们不使用输出std::bind
?我的意思是,我们为什么不拥有auto f …
在代码中,我看到以下构造:
const class_name obj_name{func()};
Run Code Online (Sandbox Code Playgroud)
func()返回一个名为的类的对象class_name
.所以,我想知道为什么不使用以下结构:
const class_name obj_name = func();
Run Code Online (Sandbox Code Playgroud) 我试着理解这段代码(从这里开始):
template <class T> class auto_ptr
{
T* ptr;
public:
explicit auto_ptr(T* p = 0) : ptr(p) {}
~auto_ptr() {delete ptr;}
T& operator*() {return *ptr;}
T* operator->() {return ptr;}
// ...
};
Run Code Online (Sandbox Code Playgroud)
我对理解这行代码有疑问:explicit auto_ptr(T* p = 0) : ptr(p) {}
.
据我所知,通过这一行,我们尝试定义一个具有一个pointer-to-object-of-T-class
类型参数的构造函数.然后我们有= 0
.那是什么?它是默认值吗?但是如何0
成为指针的默认值(指针应该将地址作为值,而不是整数).
它看起来像是c
一个以"d"为参数的函数.我知道这::
用于表示名称空间及其子名称空间.但是什么A<B>
意思?我知道那B
是上课.我也知道模板可以用于类,函数和结构.但在这个例子中,我们看起来像是使用模板作为名称空间.
我的下列理解git add file
和git checkout -- file
(但我不知道这是否是正确的).
每当我们使用文本编辑器编辑文件时,我们都会在工作目录中进行编辑.每次我们都可以staging area
通过执行将文件移动到所谓的git add file_name
.如果我们再次编辑文件(之后git add
),我们更改工作目录中的文件,这样,在工作目录中,我们使文件处于"新"状态,而staging area
文件处于"旧"状态.
当我们git add
再次使用时,我们将暂存区域中的文件带到"新"状态(工作目录中的状态).
如果我们这样做git checkout -- file_name
,我假设我们从暂存区域获取一个文件并使用它来覆盖工作目录中的文件.通过这种方式,我们可以将工作目录中的文件置于"旧"状态.这是对的吗?
我还不清楚的是,如果我们从暂存区域复制或移动文件.换句话说,确实git checkout -- file
改变了文件的状态staging area
.我们可以说,在git checkout -- file
暂存区域中的文件将文件状态更改为暂存区域中的先前状态后?
我尝试从一个本地分支转到另一个分支.Git告诉我,我不能这样做,因为我的local changes to the following files would be overwritten by checkout
.
然后我得到一个"推荐" Please, commit your changes or stash them before you can switch branches
.
我知道我不需要对上述文件进行更改.可以覆盖它们.所以,我试着stash
.我执行git stash file_name
.结果我得到:
Usage: git stash list [<options>]
or: git stash show [<stash>]
or: git stash drop [-q|--quiet] [<stash>]
or: git stash ( pop | apply ) [--index] [-q|--quiet] [<stash>]
or: git stash branch <branchname> [<stash>]
or: git stash [save [--patch] [-k|--[no-]keep-index] [-q|--quiet]
[-u|--include-untracked] [-a|--all] [<message>]]
or: git stash …
Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的问题。我想更改 pandas 数据框给定行的给定列中的值。我尝试通过以下方式做到这一点:
df['column3'].loc[this_date] = val
Run Code Online (Sandbox Code Playgroud)
结果我收到以下警告:
SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame
Run Code Online (Sandbox Code Playgroud)
我对此警告的解释是,通过使用列名称 ( 'column3'
),loc
我并没有真正访问(引用)数据框的所需单元格。相反,我创建一个对象,它是“单元格”对象的副本,然后尝试更改与此“复制对象”关联的值。
我不明白的是它似乎有效。尽管 pandas 写信给我说我尝试修改副本,但我确实修改了原始数据框。
我的问题是如何确保我真的在做我想做的事情以及如何以“正确”的方式去做,这样熊猫就不会抱怨?
我必须使用 Python 以自动方式访问(读取)网页。使用 Python,我可以轻松访问网页的内容(HTML 代码)以及服务器发送的 cookie。
现在,在 HTML5 中,我们有了一个新概念“本地存储”。所以,我需要修改我的 Python 脚本,以便我也可以读取存储在本地存储中的数据。
有可能这样做吗?是否有任何 Python 库可以让它变得简单?
c++ ×5
python ×3
git ×2
git-checkout ×2
pandas ×2
assign ×1
bind ×1
compilation ×1
constructor ×1
copy ×1
dataframe ×1
git-add ×1
git-stash ×1
group-by ×1
html ×1
makefile ×1
namespaces ×1
pointers ×1
std ×1
syntax ×1
templates ×1
web-scraping ×1