我已经看到了将一个列/系列爆炸成Pandas数据帧的多个列的主题的一些变化,但我一直在尝试做一些事情而不是真正成功地使用现有的方法.
给定一个像这样的DataFrame:
key val
id
2 foo oranges
2 bar bananas
2 baz apples
3 foo grapes
3 bar kiwis
Run Code Online (Sandbox Code Playgroud)
我想将key
系列中的项目转换为列,并将val
值作为值,如下所示:
foo bar baz
id
2 oranges bananas apples
3 grapes kiwis NaN
Run Code Online (Sandbox Code Playgroud)
我觉得这应该是相对简单的事情,但是我现在一直在抨击我的头几个小时,随着卷积水平的提高,并没有成功.
我有一个有计数器的资源.为了举例,让我们调用资源配置文件,计数器是该配置文件的视图数.
根据REST维基,PUT请求应该用于资源创建或修改,并且应该是幂等的.如果我正在更新配置文件的名称,那么这种组合很好,因为我可以发出一个PUT请求,将名称设置为1000次,结果不会改变.
对于这些标准PUT请求,我有浏览器做类似的事情:
PUT /profiles/123?property=value&property2=value2
Run Code Online (Sandbox Code Playgroud)
对于递增计数器,可以像这样调用url:
PUT /profiles/123/?counter=views
Run Code Online (Sandbox Code Playgroud)
每次调用都会导致计数器递增.从技术上讲,这是一个更新操作,但它违反了幂等性.
我正在寻找指导/最佳实践.你刚才这样做了吗?
考虑以下sass:
$font-size: 18;
$em: $font-size;
$column: $font-size * 3; // The column-width of my grid in pixels
$gutter: $font-size * 1; // The gutter-width of my grid in pixels
$gutter-em: #{$gutter / $em}em; // The gutter-width in ems.
$column-em: #{$column / $em}em; // The column-width in ems;
$foo = $gutter-em / 2; // This results in a value like "1em/2". :(
$bar = ($gutter-em / 2); // this doesn't work either, same as above.
Run Code Online (Sandbox Code Playgroud)
我如何生成一个$foo
有效的,并且我可以在其他表达式中进一步重用?
嘿伙计们,我有一个感觉很愚蠢的问题,但我不能说出原因.
想象一下带有用户和标签的webapp.用户互相标记.
我在应用程序中有一个页面,显示与单个用户相关的单个标签的详细信息.让我们说用户' bob '并标记' footag '.在这个页面上,我显示了两个列表:所有使用'footag'标记bob并且所有人bob都标记为'footag'的人.让我们称呼这些<div id="received'>
和<div id="sent">
让我们说这个观点的网址是 /users/bob/tags/footag
当然,这些列表很长 - 我不想在浏览页面上加载整个列表.所以我为每个加载前十个.
现在,我可以通过以下两种方式之一为每个列表提供动态分页:
div
./users/bob/tags/footag/received?page=1
.我异步获取它只是替换相关的内容<div>
.因此,在一种情况下,我在浏览器中通过JS获取数据并进行渲染,另一种情况是我获取渲染数据并将其批量整理到文档中.
有没有理由不使用#2?我无法想象一个,但我想可能存在我不考虑的安全方面,或性能,或其他.我更喜欢做#2,因为它大大简化了我的生活.
谢谢!
我正在编写一个chrome扩展,需要与书签子树进行交互.这个子树有很多交互,所以我把这个逻辑抽象成一个对象文字,就像这样:
var contextStore = {
'root_id': undefined,
'setup': function() {...}, // populates root_id
'add': function(name) {...}, // uses root_id
'remove': function(name) {...}, // uses root_id
// ... etc ...
};
contextStore.setup(); // only once.
contextStore.add("foo");
contextStore.add("bar");
// ... etc
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.
我遇到的麻烦是由异步Chrome API(以及我缺少JS-fu)引起的.以机智:
var contextStore = {
'root_id': undefined,
'setup': function() {
chrome.bookmarks.getTree(function(tree) {
// do some work to find a given folder in bookmarks.
// now I want to save that folder's id for access in other methods.
// Fail: …
Run Code Online (Sandbox Code Playgroud) 要清楚,我指的是stackoverflow的分叉WMD的使用,而不是来自attacklab的原始版本.
我想使用分叉版本,但似乎脚本用来识别WMDify页面元素的div id是硬编码的wmd.js:66
:
// A collection of the important regions on the page.
// Cached so we don't have to keep traversing the DOM.
wmd.PanelCollection = function(){
this.buttonBar = doc.getElementById("wmd-button-bar");
this.preview = doc.getElementById("wmd-preview");
this.output = doc.getElementById("wmd-output");
this.input = doc.getElementById("wmd-input");
};
Run Code Online (Sandbox Code Playgroud)
如果我只想使用不同的区域名称,我自己就可以了 - 但我想在一个页面上使用可变数量的WMD编辑器.我需要一种方法来告诉每个WMD实例它应该影响的页面区域,但是我没有看到任何"钩子".
看不见可能是我几乎完全缺乏js知识的产物.Right Thing To Do™是为了正确学习javascript,但我正处于一个截止日期的项目中.我真的很想使用这个版本的WMD,但是我需要一些关于如何修改WMD脚本的线索,或者只是一个如何以一种我可以指定使用哪个div id的方式调用它的例子.
线索赞赏!
我有一个有十个不同柜台的班级.我需要在运行时递增这些中的一个或另一个,并且递增方法被告知要递增的计数器的名称.
我想知道是否有比这更简洁的方法:
def increment(self, name):
"""Increments a counter specified by the 'name' argument."""
setattr(self, name, getattr(self, name) + 1)
Run Code Online (Sandbox Code Playgroud)
我已经看到了这个问题,但是所需的结果与我的略有不同。
想象一下这样分组的数据框:
df.groupby(['product_name', 'usage_type']).total_cost.sum()
product_name usage_type
Lorem A 30.694665
B 0.000634
C 1.659360
D 0.000031
E 3339.140042
F 0.074340
Ipsum G 9.627360
A 19.053377
D 14.492155
Dolor B 9.698245
H 6993.792163
C 31947.955679
D 2150.400001
E 26.337789
Name: total_cost, dtype: float6
Run Code Online (Sandbox Code Playgroud)
我想要的输出是相同的结构,但是具有两个属性:
这样,成本最高的产品将首先出现,但仍保留故障。
如果要简单得多,则可以按使用类型删除次级排序。
Pandas有一种很好的to_sql
方法可以将数据帧写入SQLAlchemy支持的任何RDBMS.
假设我有一个生成的数据帧:
df = pd.DataFrame([-1.04, 0.70, 0.11, -0.43, 1.0], columns=['value'])
Run Code Online (Sandbox Code Playgroud)
如果我尝试将其写入数据库而没有任何特殊行为,我会得到一个双精度的列类型:
df.to_sql('foo_test', an_engine)
Run Code Online (Sandbox Code Playgroud)
如果我想要一个不同的数据类型,我可以指定它(这很好):
df.to_sql('foo_test', an_engine, dtype={'value': sqlalchemy.types.NUMERIC})
Run Code Online (Sandbox Code Playgroud)
但是,如果我想设置列的精度和比例NUMERIC
,它会在我脸上爆炸:
df.to_sql('foo_test', an_engine, dtype={'value': sqlalchemy.types.NUMERIC(10,2)})
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-77-dc008463fbfc> in <module>()
1 df = pd.DataFrame([-1.04, 0.70, 0.11, -0.43, 1.0], columns=['value'])
----> 2 df.to_sql('foo_test', cosd_engine, dtype={'value': sqlalchemy.types.NUMERIC(10,2)})
/Users/igazit/.virtualenvs/myproject/lib/python2.7/site-packages/pandas/core/generic.pyc in to_sql(self, name, con, flavor, schema, if_exists, index, index_label, chunksize, dtype)
964 self, name, con, flavor=flavor, schema=schema, if_exists=if_exists,
965 index=index, index_label=index_label, chunksize=chunksize,
--> 966 dtype=dtype) …
Run Code Online (Sandbox Code Playgroud) 我有一个对象,由此定义:
var obj = {
'title': 'foo',
'id': '123',
'category': 'aaa',
'meta': 'blah blah'
};
Run Code Online (Sandbox Code Playgroud)
我想把它分配,然而,我在JS中发现了一些我不明白的行为:
var foo = {obj.title: obj.id}; // doesn't work
var bar = {obj['title']: obj['id']}; // this doesn't either
var baz = {}
baz[obj.title] = obj.id // this works fine.
Run Code Online (Sandbox Code Playgroud)
python ×4
javascript ×3
pandas ×3
ajax ×1
html ×1
http ×1
http-verbs ×1
json ×1
numpy ×1
postgresql ×1
rest ×1
sass ×1
sorting ×1
sqlalchemy ×1
wmd ×1