我和大熊猫打架,现在我已经失去了.我有类似这样的源表:
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数据框对象.我很感激能帮助我.
我正在寻找一种优化代码的方法.
我有这种形式的输入数据:
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提取到数据框中的单独列?
提前感谢您的帮助.
我使用以下代码生成了一个箱线图:
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 中运行的代码。
预先感谢您的帮助!
我在Scrapy中苦苦挣扎,而且我不明白回调之间传递项目的确切方式。也许有人可以帮助我。
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]
item = MyItem()
<-对象项已创建item['main_url'] = response.url
<-我们正在为对象项的main_url分配值request = scrapy.Request("http://www.example.com/some_page.html", callback=self.parse_page2)
<-我们正在请求一个新页面并启动parse_page2进行剪贴。[parse_page2]
item = response.meta['item']
<-我在这里不明白。我们正在创建一个新的对象项,或者这是在[parse_page1]中创建的对象项?什么是response.meta ['item']是什么意思?我们仅在3个信息(例如链接和回调)中传递给请求,因此未添加任何其他可引用的参数...item['other_url'] = response.url
<-我们正在为对象项的other_url赋值return item
<-我们根据请求返回项目对象[parse_page1]
request.meta['item'] = item
<-我们正在分配要请求的对象项目吗?但是请求完成后,回调已经在6中返回了项目?return request
<-我们正在获取请求的结果,所以从6开始的项目对吗?我浏览了所有有关scrapy和request / response / meta的文档,但是我仍然不明白第4点和第7点的情况。