小编use*_*418的帖子

根据另一个数据帧python pandas替换列值 - 更好的方法?

注意:为了简单起见,我正在使用一个玩具示例,因为复制/粘贴数据帧很难在堆栈溢出(请告诉我是否有一个简单的方法来执行此操作).

有没有办法将一个数据框中的值合并到另一个数据框而不获取_X,_Y列?我希望一列上的值替换另一列的所有零值.

df1: 

Name   Nonprofit    Business    Education

X      1             1           0
Y      0             1           0   <- Y and Z have zero values for Nonprofit and Educ
Z      0             0           0
Y      0             1           0

df2:

Name   Nonprofit    Education
Y       1            1     <- this df has the correct values. 
Z       1            1



pd.merge(df1, df2, on='Name', how='outer')

Name   Nonprofit_X    Business    Education_X     Nonprofit_Y     Education_Y
Y       1                1          1                1               1
Y      1                 1          1                1               1
X      1                 1          0               nan             nan   
Z …
Run Code Online (Sandbox Code Playgroud)

python pandas

16
推荐指数
4
解决办法
3万
查看次数

FigureCanvasAgg'对象没有属性'invalidate'?python密谋

我一直在关注'python进行数据分析'.在pg.345,你得到这个代码来绘制各种股票的回报.但是,绘图功能对我不起作用.我得到了FigureCanvasAgg'对象没有属性'invalidate'?

names = ['AAPL','MSFT', 'DELL', 'MS', 'BAC', 'C'] #goog and SF did not work
def get_px(stock, start, end):
    return web.get_data_yahoo(stock, start, end)['Adj Close']
px = pd.DataFrame({n: get_px(n, '1/1/2009', '6/1/2012') for n in names})

#fillna method pad uses last valid observation to fill
px = px.asfreq('B').fillna(method='pad')
rets = px.pct_change()
df2 = ((1 + rets).cumprod() - 1)

df2.ix[0] = 1

df2.plot()
Run Code Online (Sandbox Code Playgroud)

更新:完全追溯

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-122-df192c0432be> in <module>()
      6 df2.ix[0] = 1
      7 
----> 8 df2.plot()

//anaconda/lib/python2.7/site-packages/pandas/tools/plotting.pyc in …
Run Code Online (Sandbox Code Playgroud)

python matplotlib financial pandas

15
推荐指数
2
解决办法
9171
查看次数

美丽的汤使用正则表达式来查找标签?

我真的希望能够让Beautiful Soup匹配任何标签列表,就像这样.我知道attr接受正则表达式,但有什么美丽的汤可以让你这样做吗?

soup.findAll("(a|div)")
Run Code Online (Sandbox Code Playgroud)

输出:

<a> ASDFS
<div> asdfasdf
<a> asdfsdf
Run Code Online (Sandbox Code Playgroud)

我的目标是创建一个可以从站点中获取表的scraper.有时候标签名称不一致,我希望能够输入一个标签列表来命名表格的"数据"部分.

python regex web-scraping

15
推荐指数
3
解决办法
4万
查看次数

在pandas中搜索多个字符串而不预先确定要使用的字符串数

我想知道是否有更通用的方法来做下面的事情?我想知道是否有办法创建st函数,以便我可以搜索非预定义数量的字符串?

例如,能够创建一个通用的st函数,然后输入st('Governor','Virginia','Google)

这是我当前的功能,但它预定义了两个可以使用的单词.(df是一个pandas DataFrame)

def search(word1, word2, word3 df):
    """
    allows you to search an intersection of three terms
    """
    return df[df.Name.str.contains(word1) & df.Name.str.contains(word2) & df.Name.str.contains(word3)]

st('Governor', 'Virginia', newauthdf)
Run Code Online (Sandbox Code Playgroud)

python pandas

12
推荐指数
2
解决办法
6170
查看次数

将二维数组转换为两列数据帧pandas

如果我有以下内容,我如何使pd.DataFrame()将此数组转换为具有两列的数据帧.什么是最有效的方式?我目前的方法是将每个副本创建为一个系列,并从中创建数据帧.

由此:

([[u'294 (24%) L', u'294 (26%) R'],
  [u'981 (71%) L', u'981 (82%) R'],])
Run Code Online (Sandbox Code Playgroud)

x    y
294  294
981  981
Run Code Online (Sandbox Code Playgroud)

而不是

x
[u'294 (24%) L', u'294 (26%) R']
Run Code Online (Sandbox Code Playgroud)

我目前的做法.寻找更有效率的东西

numL = pd.Series(numlist).map(lambda x: x[0])
    numR = pd.Series(numlist).map(lambda x: x[1])

    nL = pd.DataFrame(numL, columns=['left_num'])
    nR = pd.DataFrame(numR, columns=['right_num'])

    nLR = nL.join(nR)

    nLR
Run Code Online (Sandbox Code Playgroud)

更新**

我注意到我的错误只是当你pd.DataFrame()列表与系列时.当您从列表中创建数据框时,它会将项目合并到同一列中.列表不是这样.这以最有效的方式解决了我的问题.

python pandas

8
推荐指数
1
解决办法
2万
查看次数

从github python下载和访问数据

嗨,我正在通过Python进行数据分析,我想分析他在书中经历的数据.在第9章中,他使用下面的数据.但是,一旦我将它下载到mac上的github应用程序,我很难理解如何利用ipython笔记本中的数据.

股票数据在这里:https://github.com/pydata/pydata-book/blob/master/ch09/stock_px.csv

我点击了"打开",它在我的github应用程序上下载了一个大文件.它看起来像下面.如何在ipython笔记本中打开此数据?

**看看其他stackoverflow问题,我知道我只能下载我正在做的zip文件.知道如何有效地使用github应用程序会很酷.

右键单击并保存csv文件似乎保存了json/html文件

在此输入图像描述

python git pandas

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

使用相同的列值组合连续行

我有一些看起来像这样的东西.我该怎么做:

    0             d
0   The         DT
1   Skoll       ORGANIZATION
2   Foundation  ORGANIZATION
3   ,           ,
4   based       VBN
5   in          IN
6   Silicon     LOCATION
7   Valley      LOCATION
Run Code Online (Sandbox Code Playgroud)

对此:

    0                       d
0   The                     DT
1   Skoll Foundation        ORGANIZATION
3   ,                       ,
4   based                   VBN
5   in                      IN
6   Silicon Valley          LOCATION
Run Code Online (Sandbox Code Playgroud)

python pandas

6
推荐指数
2
解决办法
6303
查看次数

如何在 Pandas str.contains 中使用 \b 字边界?

使用 str.contains 时是否有等价物?

以下代码因“Sa”而错误地将“Said Business School”列在类别中。如果我可以创建一个词界,它就会解决这个问题。在搞砸之后放一个空格。我正在使用熊猫,这是 dfs。我知道我可以使用正则表达式,但是很好奇我是否可以使用字符串来使它更快

gprivate_n = ('Co|Inc|Llc|Group|Ltd|Corp|Plc|Sa |Insurance|Ag|As|Media|&|Corporation')
df.loc[df[df.Name.str.contains('{0}'.format(gprivate_n))].index, "Private"] = 1 
Run Code Online (Sandbox Code Playgroud)

python regex string word-boundary pandas

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

在情感分析python中检测情绪

我很好奇是否有人对如何检测文本中显示的主要情绪有任何想法?是否有任何 python 包或示例可以做到这一点?

澄清:

我知道已经有一种叫做情感分析的东西。但是,我注意到这仅着眼于正面/负面情绪。我想知道是否真的有可能找到与某些文本相关的情绪(如悲伤、快乐、绝望等)。

python nlp

5
推荐指数
1
解决办法
6740
查看次数

将文本拆分为段落 NLTK - nltk.tokenize.texttiling 的用法?

我正在研究将文档拆分为段落的方法,并且发现文本平铺是实现此目的的一种可能方法。

这是我使用它的尝试。但是,我不明白如何处理输出。我很感激你的帮助。

t = unidecode(doclist[0].decode('utf-8','ignore'))

nltk.tokenize.texttiling.TextTilingTokenizer(t)
Run Code Online (Sandbox Code Playgroud)

输出:

<nltk.tokenize.texttiling.TextTilingTokenizer at 0x11e9c6350>
Run Code Online (Sandbox Code Playgroud)

python nltk

5
推荐指数
1
解决办法
8232
查看次数

标签 统计

python ×10

pandas ×7

regex ×2

financial ×1

git ×1

matplotlib ×1

nlp ×1

nltk ×1

string ×1

web-scraping ×1

word-boundary ×1