小编Ber*_*nes的帖子

将列表作为带有索引的新行追加到pandas DataFrame

尽管有很多关于将数据追加到数据帧的堆栈溢出问题,但我确实无法找到以下答案。我正在寻找一个简单的解决方案,以将列表追加为数据框的最后一行。想象一下,我有一个简单的数据框:

 indexlist=['one']
 columnList=list('ABC')
 values=np.array([1,2,3])
 # take care, the values array is a 3x1 size array. 
 # row has to be 1x3 so we have to reshape it

values=values.reshape(1,3)
df3=pd.DataFrame(values,index=indexlist,columns=columnList)
print(df3)

     A  B  C
one  1  2  3
Run Code Online (Sandbox Code Playgroud)

经过一些操作后,我得到以下列表:

listtwo=[4,5,6]
Run Code Online (Sandbox Code Playgroud)

我想将其附加在数据框的末尾。我将该列表更改为一系列:

oseries=pd.Series(listtwo)
print(type(oseries))
oseries.name="two"
Run Code Online (Sandbox Code Playgroud)

现在,这不起作用:

df3.append(oseries)
Run Code Online (Sandbox Code Playgroud)

因为它给出:

A   B   C   0   1   2
one 1.0 2.0 3.0 NaN NaN NaN
two NaN NaN NaN 5.0 6.0 7.0
Run Code Online (Sandbox Code Playgroud)

我想拥有AB和C下的值。

我也尝试过:

df3.append(oseries, columns=list('ABC'))  *** not working ***
df3.append(oseries, ignore_index=True)  *** working but wrong …
Run Code Online (Sandbox Code Playgroud)

python append series dataframe pandas

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

传递给 Gensim 语言模型的句子迭代器

我对 NLP 比较陌生,我正在尝试创建自己的单词嵌入,并在我的个人文档语料库中进行训练。

我正在尝试实现以下代码来创建我自己的单词嵌入:

model = gensim.models.Word2Vec(sentences)
Run Code Online (Sandbox Code Playgroud)

句子是句子列表。由于我无法传递成千上万的句子,所以我需要一个迭代器

# with mini batch_dir a directory with the text files
# MySentences is a class iterating over sentences.
sentences = MySentences(minibatch_dir) # a memory-friendly iterator
Run Code Online (Sandbox Code Playgroud)

我在 gensim 的创建者那里找到了这个解决方案:

class MySentences(object):
    def __init__(self, dirname):
        self.dirname = dirname

    def __iter__(self):
        for fname in os.listdir(self.dirname):
            for line in open(os.path.join(self.dirname, fname)):
                yield line.split()
Run Code Online (Sandbox Code Playgroud)

它对我不起作用。如果我知道如何从每个文档中获取句子列表,如何创建迭代器?

第二个非常相关的问题:如果我的目标是比较特定语料库中的文档相似性,那么从头开始使用该特定语料库的所有文档创建词嵌入总是比使用 GloVec 或 word2vec 更好吗?文档量约为40000篇。

干杯

更多预

python nlp gensim word2vec word-embedding

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

python spacy句子分割器

我想用它spacy从文本中取出句子。

nlp = English()  # just the language with no model
sentencizer = nlp.create_pipe("sentencizer")
nlp.add_pipe(sentencizer)
doc = nlp("This is a sentence. This is another sentence.")
for sent in doc.sents:
    print(sent.text)
Run Code Online (Sandbox Code Playgroud)

是否有可能提高句子分割器绕过规则的可靠性,例如从不在像“no.”这样的首字母缩略词之后分割句子。

当然,想象一下我有一堆非常技术性和特殊的缩写词。
你将如何进行?

python sentence spacy

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

Excel Listobject 表 ListRows.count 与 range.rows.count

我正在 Excel 中使用列表对象,但遇到以下问题:每次运行代码时,我都会将数据添加到表中。以前我必须删除所有旧数据。

ThisWorkbook.Sheets("comm").ListObjects(1).DataBodyRange.Delete
Run Code Online (Sandbox Code Playgroud)

之后发生的事情是我收到一个错误:

myNrofRowsinCOMM = COMMtbl.DataBodyRange.Rows.Count
Run Code Online (Sandbox Code Playgroud)

我看了这个帖子无济于事。我还是不明白这是怎么回事。

我也尝试了以下操作:

MsgBox "COMMtbl.Range.Rows.Count:" & COMMtbl.Range.Rows.Count
MsgBox "COMMtbl.ListRows.Count:" & COMMtbl.ListRows.Count
MsgBox "COMMtbl.databodyRange.Rows.Count:" & COMMtbl.DataBodyRange.Rows.Count
If COMMtbl.Range.Rows.Count = 1 Then
    COMMtbl.ListRows.Add (1)
End If
Run Code Online (Sandbox Code Playgroud)

如果表是空的(行标题和第一行是空的),第一行给出 2。所以范围有 2 行,这似乎符合现实。COMMtbl.Range.Rows.Count=2 第二个给出 0。我完全不明白。COMMtbl.ListRows.Count=0 第三个给出错误“未设置对象变量或 withblcok 变量”

我正在尝试向表中添加行并用数据填充它们,为此我添加了一行并填充它。我想在最后添加一行,因此我每次都需要计算行数。一切都很好,除了我之前删除了表格的整个内容时的第一个,看起来像:

在此处输入图片说明

欢迎任何帮助

非常感谢。

excel vba rows range listobject

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

VBA列表对象查找功能快速

我有几张包含 ListObjects 的工作表

当我必须在 listbject 中寻找相应的值时,我会做以下事情:

dim mytable as Listobject
set mytable = thisworkbook.sheets(x).listobject(1)
ValuetoSearch="whatever"
valueResult=""
' looking for the corresponding value of column A in column B
for i=1 to mytable.listrows.count
    if mytable.listcolumns("A").databodyrange.item(i).value=ValuetoSearch then
       valueResult=mytable.listcolumns("B").databodyrange.item(i).value
       exit for
    end if
next i
Run Code Online (Sandbox Code Playgroud)

那个有效。美好的。但:

这是进行搜索的最快方式吗?当用户选择工作表中的某些单元格(使用工作簿更改选择)时,我正在“即时”使用其中的几个查找操作,并且当“您感觉到它”时,这几乎是第二个延迟开始对用户来说很烦人。

欢呼谢谢

excel performance vba lookup-tables listobject

0
推荐指数
1
解决办法
3914
查看次数