小编Rom*_*man的帖子

如何迭代Pandas中的DataFrame中的行?

我有一只DataFrame熊猫:

import pandas as pd
inp = [{'c1':10, 'c2':100}, {'c1':11,'c2':110}, {'c1':12,'c2':120}]
df = pd.DataFrame(inp)
print df
Run Code Online (Sandbox Code Playgroud)

输出:

   c1   c2
0  10  100
1  11  110
2  12  120
Run Code Online (Sandbox Code Playgroud)

现在我想迭代这个帧的行.对于每一行,我希望能够通过列的名称访问其元素(单元格中的值).例如:

for row in df.rows:
   print row['c1'], row['c2']
Run Code Online (Sandbox Code Playgroud)

是否有可能在熊猫中做到这一点?

我发现了类似的问题.但它没有给我我需要的答案.例如,建议使用:

for date, row in df.T.iteritems():
Run Code Online (Sandbox Code Playgroud)

要么

for row in df.iterrows():
Run Code Online (Sandbox Code Playgroud)

但我不明白row对象是什么以及如何使用它.

python rows dataframe pandas

1551
推荐指数
28
解决办法
199万
查看次数

如何计算pandas组中每组(和其他统计信息)的行数?

我有一个数据框df,我使用它的几个列groupby:

df['col1','col2','col3','col4'].groupby(['col1','col2']).mean()
Run Code Online (Sandbox Code Playgroud)

以上面的方式,我几乎得到了我需要的表(数据框).缺少的是包含每个组中行数的附加列.换句话说,我有意思,但我也想知道有多少数字被用来获得这些手段.例如,在第一组中有8个值,在第二组中有10个,依此类推.

python group-by dataframe pandas pandas-groupby

365
推荐指数
6
解决办法
62万
查看次数

如何从数据帧的单元格中获取值?

我构造了一个从我的数据框中提取一行的条件:

d2 = df[(df['l_ext']==l_ext) & (df['item']==item) & (df['wn']==wn) & (df['wd']==1)]
Run Code Online (Sandbox Code Playgroud)

现在我想从特定列中获取值:

val = d2['col_name']
Run Code Online (Sandbox Code Playgroud)

但结果我得到一个包含一行和一列(一个单元格)的数据帧.这不是我需要的.我需要一个值(一个浮点数).我怎么能在熊猫里做到这一点?

python dataframe pandas

293
推荐指数
14
解决办法
76万
查看次数

如何重置pandas数据框中的索引?

我有一个数据框,我从中删除了一些行.结果,我得到一个数据框,其中索引是这样的:[1,5,6,10,11]我想将其重置为[0,1,2,3,4].我该怎么做?


以下似乎有效:

df = df.reset_index()
del df['index']
Run Code Online (Sandbox Code Playgroud)

以下不起作用:

df = df.reindex()
Run Code Online (Sandbox Code Playgroud)

python indexing dataframe pandas

290
推荐指数
3
解决办法
40万
查看次数

静态初始化块

据我所知,"静态初始化块"用于设置静态字段的值,如果不能在一行中完成的话.

但我不明白为什么我们需要一个特殊的块.例如,我们将一个字段声明为静态(没有值赋值).然后编写几行代码,生成并为上面声明的静态字段赋值.

为什么我们需要在一个特殊的块这样的行这样的:static {...}

java static initialization static-block initialization-block

252
推荐指数
8
解决办法
19万
查看次数

什么时候应该在课堂上使用"this"?

我知道这this是指当前的对象.但我不知道什么时候才能真正使用它.例如,如果我使用x而不是this.x在某些方法中,会有什么区别吗?可能x会引用一个考虑方法的局部变量?我的意思是仅在此方法中看到的变量.

怎么样this.method()?我可以用吗?我应该用它吗?如果我只是使用method(),默认情况下它不会应用于当前对象吗?

java oop this

245
推荐指数
8
解决办法
19万
查看次数

它是什么意思:serializable类没有声明一个静态的final serialVersionUID字段?

我在标题中给出了警告信息.我想了解并删除它.我在这个问题上找到了一些答案,但由于技术术语过载,我不理解这些答案.用简单的词语解释这个问题有可能吗?

PS我知道OOP是什么.我知道什么是对象,类,方法,字段和实例化.

PPS如果有人需要我的代码,它在这里:

import java.awt.*;
import javax.swing.*;


public class HelloWorldSwing extends JFrame {

        JTextArea m_resultArea = new JTextArea(6, 30);

        //====================================================== constructor
        public HelloWorldSwing() {
            //... Set initial text, scrolling, and border.
            m_resultArea.setText("Enter more text to see scrollbars");
            JScrollPane scrollingArea = new JScrollPane(m_resultArea);
            scrollingArea.setBorder(BorderFactory.createEmptyBorder(10,5,10,5));

            // Get the content pane, set layout, add to center
            Container content = this.getContentPane();
            content.setLayout(new BorderLayout());
            content.add(scrollingArea, BorderLayout.CENTER);
            this.pack();
        }

        public static void createAndViewJFrame() {
            JFrame win = new HelloWorldSwing();
            win.setTitle("TextAreaDemo");
            win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            win.setVisible(true);
        }

        //============================================================= main
        public …
Run Code Online (Sandbox Code Playgroud)

java serializable serialversionuid

208
推荐指数
5
解决办法
20万
查看次数

如何找到可用的端口?

我想启动一个监听端口的服务器.我可以明确指定端口,它可以工作.但我想以自动方式找到一个端口.在这方面,我有两个问题.

  1. 我应该在哪个端口号范围内搜索?(我使用了端口12345,12346和12347,它很好).

  2. 如何确定某个端口是否未被其他软件占用?

java sockets port networking

188
推荐指数
11
解决办法
17万
查看次数

如何从Eclipse中的现有源创建项目然后找到它?

我创建了几个.java文件.所有这些都位于一个目录中.我使用文本编辑器来编写这些文件.现在我想切换到Eclipse.我该怎么做?我尝试了很多方法.它们都不起作用.

添加:

我认为常见的方法是在eclipse文件夹中有一个名为"workspace"的源代码.那么,我如何在这些目录中获取我的文件.我应该使用eclipse从现有源创建一个新项目,Eclipse会将所有文件放到工作区吗?或者我应该手动将所有文件复制到工作区?我应该把我的班级文件放在哪里?我应该创建一个子目录吗?用哪个名字?

增加2:

当我尝试创建一个名为"game"的项目时,eclipse告诉我已经存在具有这种名称的项目.但是我怎么能打开这个项目呢?

增加3:

在我的"工作区"中,我创建了一个名为"游戏"的子目录.我将所有.java文件复制到此子目录中.然后使用Eclipse,我创建了一个名为game的新项目.结果,Eclipse 在目录"game"中创建.classpath.project存档了文件.这也造就binsrc子目录.现在我认为这不是正确的方法.源文件应该位于"src"目录中.对?目前我所有的.java文件都在"workspace\game"中.

增加4:

我是以其他方式做到的.使用Eclipse,我创建了一个名为"game"的新项目.结果,Eclipse在文件夹"workspace"中创建了一个名为"game"的文件夹.在"游戏"文件夹中我找到了"src"文件夹.我将所有.java文件复制到此文件夹中.但是现在在"Package Explorer"中我无法打开"src"文件夹.那么,我如何从Eclipse访问我的源文件?为什么Eclipse不想打开"src"文件夹?

java eclipse project

170
推荐指数
2
解决办法
21万
查看次数

如何检查我的字符串是否等于null?

我想只在我的字符串有一个有意义的值时执行一些操作.所以,我试过这个.

if (!myString.equals("")) {
doSomething
}
Run Code Online (Sandbox Code Playgroud)

还有这个

if (!myString.equals(null)) {
doSomething
}
Run Code Online (Sandbox Code Playgroud)

还有这个

if ( (!myString.equals("")) && (!myString.equals(null))) {
doSomething
}
Run Code Online (Sandbox Code Playgroud)

还有这个

if ( (!myString.equals("")) && (myString!=null)) {
doSomething
}
Run Code Online (Sandbox Code Playgroud)

还有这个

if ( myString.length()>0) {
doSomething
}
Run Code Online (Sandbox Code Playgroud)

在所有情况下,我的程序doSomething尽管我的字符串是空的.它等于null.那么,那有什么问题?

添加:

我找到了问题的原因.该变量被声明为一个字符串,因此,null分配给该变量的变换为"null"!所以,if (!myString.equals("null"))有效.

java string null equals conditional-operator

166
推荐指数
11
解决办法
47万
查看次数