小编mic*_*alk的帖子

从列中获取字符串的第一个字母

我和大熊猫打架,现在我已经失去了.我有类似这样的源表:

import pandas as pd

a=pd.Series([123,22,32,453,45,453,56])
b=pd.Series([234,4353,355,453,345,453,56])
df=pd.concat([a, b], axis=1)
df.columns=['First', 'Second']
Run Code Online (Sandbox Code Playgroud)

我想在此数据框中添加新列,其中第一个数字来自"First"列中的值:a)将数字更改为"First"列中的字符串b)从新创建的字符串中提取第一个字符c)b的结果另存为新数据框中的列

我不知道如何将它应用于pandas数据框对象.我很感激能帮助我.

python pandas

28
推荐指数
2
解决办法
5万
查看次数

从数据框中的列中提取字典值

我正在寻找一种优化代码的方法.

我有这种形式的输入数据:

import pandas as pn

a=[{'Feature1': 'aa1','Feature2': 'bb1','Feature3': 'cc2' },
 {'Feature1': 'aa2','Feature2': 'bb2' },
 {'Feature1': 'aa1','Feature2': 'cc1' }
 ]
b=['num1','num2','num3']


df= pn.DataFrame({'num':b, 'dic':a })
Run Code Online (Sandbox Code Playgroud)

我想从上面数据框中的'dic'列(如果存在)中的字典中提取元素'Feature3'.到目前为止,我能够解决它,但我不知道这是否是最快的方式,它似乎有点过于复杂.

Feature3=[]
for idx, row in df['dic'].iteritems():
    l=row.keys()

    if 'Feature3' in l:
        Feature3.append(row['Feature3'])
    else:
        Feature3.append(None)

df['Feature3']=Feature3
print df
Run Code Online (Sandbox Code Playgroud)

是否有更好/更快/更简单的方法将此Feature3提取到数据框中的单独列?

提前感谢您的帮助.

python pandas

9
推荐指数
5
解决办法
2万
查看次数

如何删除 Pandas 生成的自动图表标题

我使用以下代码生成了一个箱线图:

import pandas as pd
import random

country = ['A' for z in range(1,6)] + [ 'B' for z in range(1,6)]
sales = [random.random() for z in range(1,11)]
data =pd.DataFrame({'country':country, 'sales':sales})

bp=data.boxplot(by='country')
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Pandas 生成图表的自动标题。1. '按国家分组的箱线图' 2. '销售额'

我可以摆脱 1 使用:

bp.get_figure().suptitle('')
Run Code Online (Sandbox Code Playgroud)

但我不知道如何摆脱第二个“销售”

我一整天都在努力搜索堆栈溢出,但似乎没有任何效果。

我正在将 Python 3.6.1 与 Conda 一起使用。我在 Jupiter notebook 中运行的代码。

预先感谢您的帮助!

python matplotlib pandas jupyter-notebook

6
推荐指数
1
解决办法
7331
查看次数

scrapy:了解项目和请求在回调之间如何工作

我在Scrapy中苦苦挣扎,而且我不明白回调之间传递项目的确切方式。也许有人可以帮助我。

我正在调查http://doc.scrapy.org/en/latest/topics/request-response.html#passing-additional-data-to-callback-functions

def parse_page1(self, response):
    item = MyItem()
    item['main_url'] = response.url
    request = scrapy.Request("http://www.example.com/some_page.html",
                             callback=self.parse_page2)
    request.meta['item'] = item
    return request

def parse_page2(self, response):
    item = response.meta['item']
    item['other_url'] = response.url
    return item
Run Code Online (Sandbox Code Playgroud)

我正在尝试逐步了解那里的行动流程:

[parse_page1]

  1. item = MyItem() <-对象项已创建
  2. item['main_url'] = response.url <-我们正在为对象项的main_url分配值
  3. request = scrapy.Request("http://www.example.com/some_page.html", callback=self.parse_page2) <-我们正在请求一个新页面并启动parse_page2进行剪贴。

[parse_page2]

  1. item = response.meta['item']<-我在这里不明白。我们正在创建一个新的对象项,或者这是在[parse_page1]中创建的对象项?什么是response.meta ['item']是什么意思?我们仅在3个信息(例如链接和回调)中传递给请求,因此未添加任何其他可引用的参数...
  2. item['other_url'] = response.url <-我们正在为对象项的other_url赋值
  3. return item <-我们根据请求返回项目对象

[parse_page1]

  1. request.meta['item'] = item<-我们正在分配要请求的对象项目吗?但是请求完成后,回调已经在6中返回了项目?
  2. return request <-我们正在获取请求的结果,所以从6开始的项目对吗?

我浏览了所有有关scrapy和request / response / meta的文档,但是我仍然不明白第4点和第7点的情况。

python scrapy

3
推荐指数
1
解决办法
2346
查看次数

标签 统计

python ×4

pandas ×3

jupyter-notebook ×1

matplotlib ×1

scrapy ×1