我有一个pandas数据帧如下:
如何将所有列表(在'val'列中)组合成一个唯一的列表(set),例如[val1, val2, val33, val9, val6, val7]?
我可以使用以下代码解决这个问题.我想知道是否有更简单的方法从列中获取所有唯一值而不迭代数据帧行?
def_contributors=[]
for index, row in df.iterrows():
contri = ast.literal_eval(row['val'])
def_contributors.extend(contri)
def_contributors = list(set(def_contributors))
Run Code Online (Sandbox Code Playgroud) 我有以下脚本在Linux OS上下载,安装或更新Java,例如CentOS.还有比周围更好的东西吗?这是一个非常麻烦的脚本,我想要一个更优雅的解决方案.
###INSTALL
wget http://www.java.net/download/jdk7/binaries/jdk-7-ea-bin-b96-linux-x64-03_jun_2010.bin
chmod a+x jdk-7-ea-bin-b96-linux-x64-03_jun_2010.bin
echo y > answers.txt
./jdk-7-ea-bin-b96-linux-x64-03_jun_2010.bin < answers.txt &>/dev/null
mkdir /jdk7
mv /root/jdk1.7.0 /jdk7
ln -sf /jdk7/bin/java /usr/bin/java
rm -f jdk-7-ea-bin-b96-linux-x64-03_jun_2010.bin
###UPGRADE
wget http://www.java.net/download/jdk7/binaries/jdk-7-ea-bin-b117-linux-x64-04_nov_2010.bin
chmod a+x jdk-7-ea-bin-b117-linux-x64-04_nov_2010.bin
echo y > answers.txt
rm -rf /jdk7
./jdk-7-ea-bin-b96-linux-x64-03_jun_2010.bin < answers.txt &>/dev/null
mv /root/jdk1.7.0 /jdk7
ln -sf /jdk7/bin/java /usr/bin/java
rm -f jdk-7-ea-bin-b96-linux-x64-03_jun_2010.bin
Run Code Online (Sandbox Code Playgroud) 我尝试从iframe内部听取iframe宽度/高度的变化:
$(window).resize(function(){
alert('1 on inside iframe');
});
Run Code Online (Sandbox Code Playgroud)
要么:
$(window.parent).find('iframe').resize(function(){
alert('2 on inside iframe');
});
Run Code Online (Sandbox Code Playgroud)
但是当iframe大小改变时没有任何反应.(我需要一个跨浏览器的解决方案:IE7,Chrome,Firefox,Safari.)
这是我的代码:
import StringIO
from pandas import *
import numpy as np
df = read_csv(StringIO.StringIO('''Col1 Col2 A B
A D 1 6
A E 2 7
B D 3 8
B E 4 9
C D 5 19'''), delimiter='\t')
df['buc1'] = cut(df['A'], bins = [0, 2, 6, 8])
aggFunc = {'A': sum,
'B': np.average
}
Run Code Online (Sandbox Code Playgroud)
运行后:
df.groupby(['buc1']).agg(aggFunc)
Run Code Online (Sandbox Code Playgroud)
我得到:
A B
buc1
(0, 2] 3 6.5
(2, 6] 12 12.0
(6, 8] NaN NaN
Run Code Online (Sandbox Code Playgroud)
我的问题是:
我有一个包含 JavaScript 代码的笔记本单元格,我希望代码选择这个特定的单元格。不幸的是, 的行为get_selected_cell取决于我是就地执行单元格,还是执行并选择下面的单元格。
例子:
%%javascript
var cell = Jupyter.notebook.get_selected_cell();
console.log(Jupyter.notebook.find_cell_index(cell));
Run Code Online (Sandbox Code Playgroud)
执行此单元格时,无论我使用Ctrl+Enter还是执行,控制台输出都会有所不同Shift+Enter。在一种情况下,它记录包含 JavaScript 代码的单元格的索引,在另一种情况下记录下面单元格的索引。
有没有办法选择我想要的单元格?
我有一个数据框,其中包含一个名为SAM的列,其中包含以下数据
SAM
3
5
9
Nan
Nan
24
40
Nan
57
Run Code Online (Sandbox Code Playgroud)
现在我想插入12,15并43分别在Nan值(因为9+3=12,12+3=15和40+3=43).换句话说,Nan通过添加3到前一行(也可以是Nan)来填充任何行.
我知道这可以通过迭代for循环来完成.但我们能以矢量化的方式做到吗?像一些修改版本ffill(如果我们没有连续的NaN,可以在这里使用)pandas.fillna().
我有一个DataFrame,其中包含每列的列表,如下例所示,只有两列.
Gamma Beta
0 [1.4652917656926299, 0.9326935235505321, float] [91, 48.611034768515864, int]
1 [2.6008354611105995, 0.7608529935313189, float] [59, 42.38646954167245, int]
2 [2.6386970166722348, 0.9785848171888037, float] [89, 37.9011122659478, int]
3 [3.49336632573625, 1.0411524946972244, float] [115, 36.211134224288344, int]
4 [2.193991200007534, 0.7955134305428825, float] [128, 50.03563864975485, int]
5 [3.4574527664490997, 0.9399880977511021, float] [120, 41.841146628802875, int]
6 [3.1190582380554863, 1.0839109431114795, float] [148, 55.990072419824514, int]
7 [2.7757359940789916, 0.8889801332053203, float] [142, 51.08885697101243, int]
8 [3.23820908493237, 1.0587479742892683, float] [183, 43.831293356668425, int]
9 [2.2509032790941985, 0.8896196407231622, float] [66, 35.9377662201882, int]
Run Code Online (Sandbox Code Playgroud)
我想为每一列提取每行列表的第一个位置,以获得如下的DataFrame.
Gamma Beta
0 1.4652917656926299 91
1 …Run Code Online (Sandbox Code Playgroud) 我有一个问题,我从一些数据库图像中收到大量直方图。这些直方图表示为向量 (0...255),我必须识别并使用双峰直方图。
是否有一个公式可以自动识别哪些直方图是双峰的,哪些不是?由于它们是数字向量,我可以使用编程语言(Java/C#)来处理它。
文献中有没有软件识别双峰直方图的标准?
以下是我正在使用的直方图和格式输入的 3 个示例。每个直方图都是一个具有 256 (0...255) 个位置的向量。
Histogram 1
8029, 41, 82, 177, 135, 255, 315, 591, 949, 456, 499, 688, 446, 733, 712, 1595, 2633, 3945, 6134, 9755, 9236, 11911, 11888, 9450, 13119, 8819, 5991, 4399, 6745, 2017, 3747, 1777, 2946, 1623, 2151, 454, 3015, 3176, 2211, 1080, 391, 580, 750, 473, 10424, 334, 559, 621, 340, 2794, 1094, 5274, 2822, 204, 389, 728, 268, 15, 1060, 58, 113, 2728, 52, 3166, 11, 103, 522, 107, …Run Code Online (Sandbox Code Playgroud) 我使用数据框方法绘制了一个图表plot:
ax = df1.plot(x='Lat', y='Lon', kind='scatter', c='Thickness')
Run Code Online (Sandbox Code Playgroud)
结果是一个散点图,其中点按 中设置的参数缩放c='Thickness'。图表旁边的颜色条自动接收标签Thickness。我想改变它。
我知道 colorbar 方法set_label,但我不知道如何从axpandasplot函数返回的值访问 colorbar 对象。
如何访问图中的颜色条对象以更改其标签?
我想将我的 DataFrame 写入 CSV 文件。结果如下所示。行彼此不对齐。你有什么建议来解决这个问题吗?
代码 :
dataframe.to_csv(data,sep="",index=False,header=False,encoding='ascii',
float_format='%10.4f',quoting=csv.QUOTE_NONE, escapechar=" ", mode='a+')
Run Code Online (Sandbox Code Playgroud)
file.csv 的内容:
++++++++++++++++++++++++++ C1 c2 c3 c2 1 1.111 1.111 1.111 2 23.261 1.111 1.111 3 138.383 1.111 1.111 2 228.717 1.111 1.111 5 358.225 1.111 1.111 6 268.173 1.111 1.111 7 577.311 1.111 1.111 8 687.623 1.111 1.111 3 737.357 1.111 1.111 11 317.185 1.111 1.111 11 1116.813 1.111 1.111 12 1126.521 1.111 1.111 13 1151.325 1.111 1.111 22 2273.853 1.111 1.111 23 2583.581 1.111 1.111 22 …