我有一只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
对象是什么以及如何使用它.
我有一个数据框df
,我使用它的几个列groupby
:
df['col1','col2','col3','col4'].groupby(['col1','col2']).mean()
Run Code Online (Sandbox Code Playgroud)
以上面的方式,我几乎得到了我需要的表(数据框).缺少的是包含每个组中行数的附加列.换句话说,我有意思,但我也想知道有多少数字被用来获得这些手段.例如,在第一组中有8个值,在第二组中有10个,依此类推.
我构造了一个从我的数据框中提取一行的条件:
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)
但结果我得到一个包含一行和一列(即一个单元格)的数据帧.这不是我需要的.我需要一个值(一个浮点数).我怎么能在熊猫里做到这一点?
我有一个数据框,我从中删除了一些行.结果,我得到一个数据框,其中索引是这样的:[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) 据我所知,"静态初始化块"用于设置静态字段的值,如果不能在一行中完成的话.
但我不明白为什么我们需要一个特殊的块.例如,我们将一个字段声明为静态(没有值赋值).然后编写几行代码,生成并为上面声明的静态字段赋值.
为什么我们需要在一个特殊的块这样的行这样的:static {...}
?
java static initialization static-block initialization-block
我知道这this
是指当前的对象.但我不知道什么时候才能真正使用它.例如,如果我使用x
而不是this.x
在某些方法中,会有什么区别吗?可能x
会引用一个考虑方法的局部变量?我的意思是仅在此方法中看到的变量.
怎么样this.method()
?我可以用吗?我应该用它吗?如果我只是使用method()
,默认情况下它不会应用于当前对象吗?
我在标题中给出了警告信息.我想了解并删除它.我在这个问题上找到了一些答案,但由于技术术语过载,我不理解这些答案.用简单的词语解释这个问题有可能吗?
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) 我想启动一个监听端口的服务器.我可以明确指定端口,它可以工作.但我想以自动方式找到一个端口.在这方面,我有两个问题.
我应该在哪个端口号范围内搜索?(我使用了端口12345,12346和12347,它很好).
如何确定某个端口是否未被其他软件占用?
我创建了几个.java文件.所有这些都位于一个目录中.我使用文本编辑器来编写这些文件.现在我想切换到Eclipse.我该怎么做?我尝试了很多方法.它们都不起作用.
添加:
我认为常见的方法是在eclipse文件夹中有一个名为"workspace"的源代码.那么,我如何在这些目录中获取我的文件.我应该使用eclipse从现有源创建一个新项目,Eclipse会将所有文件放到工作区吗?或者我应该手动将所有文件复制到工作区?我应该把我的班级文件放在哪里?我应该创建一个子目录吗?用哪个名字?
增加2:
当我尝试创建一个名为"game"的项目时,eclipse告诉我已经存在具有这种名称的项目.但是我怎么能打开这个项目呢?
增加3:
在我的"工作区"中,我创建了一个名为"游戏"的子目录.我将所有.java文件复制到此子目录中.然后使用Eclipse,我创建了一个名为game的新项目.结果,Eclipse 在目录"game"中创建.classpath
并.project
存档了文件.这也造就bin
和src
子目录.现在我认为这不是正确的方法.源文件应该位于"src"目录中.对?目前我所有的.java文件都在"workspace\game"中.
增加4:
我是以其他方式做到的.使用Eclipse,我创建了一个名为"game"的新项目.结果,Eclipse在文件夹"workspace"中创建了一个名为"game"的文件夹.在"游戏"文件夹中我找到了"src"文件夹.我将所有.java文件复制到此文件夹中.但是现在在"Package Explorer"中我无法打开"src"文件夹.那么,我如何从Eclipse访问我的源文件?为什么Eclipse不想打开"src"文件夹?
我想只在我的字符串有一个有意义的值时执行一些操作.所以,我试过这个.
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"))
有效.