注意:为了简单起见,我正在使用一个玩具示例,因为复制/粘贴数据帧很难在堆栈溢出(请告诉我是否有一个简单的方法来执行此操作).
有没有办法将一个数据框中的值合并到另一个数据框而不获取_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进行数据分析'.在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) 我真的希望能够让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.有时候标签名称不一致,我希望能够输入一个标签列表来命名表格的"数据"部分.
我想知道是否有更通用的方法来做下面的事情?我想知道是否有办法创建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) 如果我有以下内容,我如何使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进行数据分析,我想分析他在书中经历的数据.在第9章中,他使用下面的数据.但是,一旦我将它下载到mac上的github应用程序,我很难理解如何利用ipython笔记本中的数据.
股票数据在这里:https://github.com/pydata/pydata-book/blob/master/ch09/stock_px.csv
我点击了"打开",它在我的github应用程序上下载了一个大文件.它看起来像下面.如何在ipython笔记本中打开此数据?
**看看其他stackoverflow问题,我知道我只能下载我正在做的zip文件.知道如何有效地使用github应用程序会很酷.
右键单击并保存csv文件似乎保存了json/html文件
我有一些看起来像这样的东西.我该怎么做:
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) 使用 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 包或示例可以做到这一点?
澄清:
我知道已经有一种叫做情感分析的东西。但是,我注意到这仅着眼于正面/负面情绪。我想知道是否真的有可能找到与某些文本相关的情绪(如悲伤、快乐、绝望等)。
我正在研究将文档拆分为段落的方法,并且发现文本平铺是实现此目的的一种可能方法。
这是我使用它的尝试。但是,我不明白如何处理输出。我很感激你的帮助。
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 ×10
pandas ×7
regex ×2
financial ×1
git ×1
matplotlib ×1
nlp ×1
nltk ×1
string ×1
web-scraping ×1