我有两个pandas数据帧.
noclickDF = DataFrame([[0,123,321],[0,1543,432]], columns=['click', 'id','location'])
clickDF = DataFrame([[1,123,421],[1,1543,436]], columns=['click', 'location','id'])
Run Code Online (Sandbox Code Playgroud)
我只是想加入,以便最终的DF看起来像:
click | id | location
0 123 321
0 1543 432
1 421 123
1 436 1543
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,两个原始DF的列名相同,但顺序不同.列中也没有连接.
我正在使用NLTK来对文档进行分类 - 每个文档有1个标签,有10种类型的文档.
对于文本提取,我正在清理文本(标点删除,html标记删除,小写),删除nltk.corpus.stopwords,以及我自己的停用词集合.
对于我的文档功能,我查看所有50k文档,并按频率(frequency_words)收集前2k个单词,然后为每个文档识别文档中哪些单词也在全局frequency_words中.
然后我将每个文档作为hashmap传递{word: boolean}到nltk.NaiveBayesClassifier(...)中,我对文档总数的测试训练比率为20:80.
我遇到的问题:
谢谢!
我有一个pandas数据帧,其中包含用户ID'subscriber_id'列表以及其他一些信息.
我想只选择不在给定列表A中的订阅者.
因此,如果我们的数据框包含订阅者的信息[1,2,3,4,5]而我的排除列表是[2,4,5],我现在应该得到一个包含[1,3]信息的数据帧
我尝试过使用如下掩码:
temp = df.mask(lambda x: x['subscriber_id'] not in subscribers)
但没有运气!
我确信这not in是有效的Python语法,因为我在列表上测试它如下:
c = [1,2,3,4,5]
if 5 not in c:
print 'YAY'
>> YAY
Run Code Online (Sandbox Code Playgroud)
过滤数据框的任何建议或替代方法?
所以我有一个numpy矩阵,例如:
[[1,2,3],
[0,59,2],
[54,4,2]]
Run Code Online (Sandbox Code Playgroud)
现在我想找到索引,其中所有值都大于50(不是最大值).这应该给我[1,1],[2,0].
除了迭代,检查每个值并跟踪符合条件的值的索引然后返回这些对 - 你如何有效地做到这一点?
假设我们有一个字典: {'Hello World': value1, 'Testing': value2}
现在我们需要在字典中查找一个词。密钥 K 需要与“Hello World”或“Testing”完全匹配才能使用。
所以让我们的text = 'hello world'我们仍然希望这个返回value1
那么我们如何处理文本与键的正则表达式匹配呢?理想情况下,我们不想遍历字典
编辑:间距方面只是一个简单的例子。文本可能会发生变化,是我们想要匹配的数字和字母的组合。我们通常会使用正则表达式模式
所以现在,如果我增加一个列表,即“ x = [1,2,3]* 2 I get x as [1,2,3,1,2,3]但是,这不适用于熊猫”。
因此,如果要复制PANDAS DF,则必须将一列设为列表并包含多个:
col_x_duplicates = list(df['col_x'])*N
new_df = DataFrame(col_x_duplicates, columns=['col_x'])
Run Code Online (Sandbox Code Playgroud)
然后对原始数据进行联接:
pd.merge(new_df, df, on='col_x', how='left')
Run Code Online (Sandbox Code Playgroud)
现在这将大熊猫DF复制了N次,有没有更简单的方法?还是更快的方法?
因此,我的iPython笔记本出现在浏览器(chrome)中,当我打开特定笔记本时,将打开一个新标签。但是,该工作无法加载!该页面也冻结。这是iPython问题还是文件有问题?昨天上班。我已经重新盯上comp等,但是没有运气
更新:只是尝试重命名笔记本以重新打开但没有运气
更新2:现在已经出现了-但不能执行任何操作!iPython只是极慢而已...
如果名称列条目在给定列表中有一个项目,我想过滤一个pandas数据帧.
这里我们有一个DataFrame
x = DataFrame(
[['sam', 328], ['ruby', 3213], ['jon', 121]],
columns=['name', 'score'])
Run Code Online (Sandbox Code Playgroud)
现在假设我们有一个列表,['sam', 'ruby']我们想要查找名称在列表中的所有行,然后对得分求和.
我的解决方案如下:
total = 0
names = ['sam', 'ruby']
for name in names:
identified = x[x['name'] == name]
total = total + sum(identified['score'])
Run Code Online (Sandbox Code Playgroud)
但是,当数据帧变得非常大,并且名称列表也变得非常大时,一切都非常慢.
还有更快的选择吗?
谢谢
我有一个大小为N的DataFrame.我需要用S样本对其进行采样,其中N <S替换.
def sampleDF(df, K):
return df.ix[np.random.randint(0, len(df), size=k)]
Run Code Online (Sandbox Code Playgroud)
我返回一个新的DF,但似乎一切都充满了NaN.我不确定发生了什么!
我有一些正方形(正方形旋转 45° 看起来像钻石),我想用它们来组成一个带有中央红色钻石的大钻石形状。
我自己组织钻石时遇到问题,而且href似乎失败了。
她是我的代码:
body {
background: black;
color: #000000;
font: 13px georgia, serif;
line-height: 1.4;
font-weight: lighter;
text-rendering: optimizelegibility;
}
#diamond {
width: 0;
height: 0;
border: 50px solid transparent;
border-bottom-color: white;
position: relative;
top: -50px;
}
#diamond:after {
content: '';
position: absolute;
left: -50px;
top: 50px;
width: 0;
height: 0;
border: 50px solid transparent;
border-top-color: white;
}
#diamond_red {
width: 0;
height: 0;
border: 50px solid transparent;
border-bottom-color: …Run Code Online (Sandbox Code Playgroud)