小编San*_*ta7的帖子

如何将多标头熊猫数据框转换为嵌套词典列表

我有一个带有多个标头的熊猫数据框。我想知道如何将其转换为嵌套目录列表。熊猫数据框中的每一行将是列表中的嵌套字典。

这是一个例子

#Creaet an example multiheader dataframe

col =['id','x, single room','x, double room','y, single room','y, double room' ]
df = pd.DataFrame([[1,2,3,4,5], [3,4,7,5,3]], columns=col)
a = df.columns.str.split(', ', expand=True).values
#swap values in NaN and replace NAN to ''
df.columns = pd.MultiIndex.from_tuples([('', x[0]) if pd.isnull(x[1]) else x for x in a])
df
Run Code Online (Sandbox Code Playgroud)

结果

        x   y
id  single room double room single room double room
0   1   2   3   4   5
1   3   4   7   5   3
Run Code Online (Sandbox Code Playgroud)

这是我想转换为嵌套字典列表的数据框。所以这是理想的结果

[{'id': 1,
  'x': {'double room': …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

将列表的熊猫列转换为python集

假设我有一个清单的pandas列

column1
['a', 'b', 'b', 'd', 'e']
['b', 'e', 'g']
Run Code Online (Sandbox Code Playgroud)

如何将其转换为python集?

例如

print(pythonSet)
> {'a', 'b', 'd', 'e', 'g'}
Run Code Online (Sandbox Code Playgroud)

我尝试这样做,set(df['column1'])但会导致错误

python pandas

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

如何将 argparse args 传递给导入的 python 脚本

假设我有一个可以接受 args 的 python 脚本

# testt.py
import argparse

def main(args):

    print(args.foo)
    print(args.bar)
    print(args.nee)

if __name__ == "__main__":

    parser = argparse.ArgumentParser(description='Test argument parser')

    parser.add_argument('-foo', type=str)
    parser.add_argument('-bar', type=int)
    parser.add_argument('-nee', type=bool)
    args = parser.parse_args()

    main(args)
Run Code Online (Sandbox Code Playgroud)

但不是从命令行运行它,我想从另一个 Python 程序运行它

import testt
Run Code Online (Sandbox Code Playgroud)

我怎么能传入 arg 参数?

python argparse

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

大多数干净和pythonic方式在循环中连接数字和字符串,同时保持前缀为零

假设我想从网站下载文件,文件按此样式列出

www.website.com/file001.mp3
www.website.com/file002.mp3
www.website.com/file003.mp3
.
.
.
www.website.com/file451.mp3
www.website.com/file452.mp3
www.website.com/file453.mp3
Run Code Online (Sandbox Code Playgroud)

我想制作一些代码,使用循环下载这些代码.

for i in range(1, 454):
    downloadFunction('www.website.com/file00'+i+'.mp3')
Run Code Online (Sandbox Code Playgroud)

当我大于9时,这不起作用,因为然后连接看起来像

'www.website.com/file0010.mp3' 
Run Code Online (Sandbox Code Playgroud)

代替

'www.website.com/file010.mp3' 
Run Code Online (Sandbox Code Playgroud)

我可以为每个hundreth的值编写代码,但我觉得有一种更优雅的方式来编写代码.

python

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

有没有办法检查字典是否有键,以及该键的值是否一次不是 None ?

sampleDict = {'1':None}
Run Code Online (Sandbox Code Playgroud)

要检查密钥是否存在,如果不是无,我必须这样做

if '1' in sampleDict:
    if sampleDict['1'] is not None:
        #do something
Run Code Online (Sandbox Code Playgroud)

有没有更 Pythonic 的方法可以一次性完成此操作?

python dictionary

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

如何从 spaCy 标记重建原始文本,即使在具有复杂空格和标点符号的情况下

' '.join(token_list) 在连续出现多个空格和标点符号的情况下不会重建原始文本。

例如:

from spacy.tokenizer import Tokenizer
from spacy.lang.en import English

nlp = English()
# Create a blank Tokenizer with just the English vocab
tokenizerSpaCy = Tokenizer(nlp.vocab)

context_text = 'this    is a     test \n \n \t\t test for    \n testing  -  ./l \t'

contextSpaCyToksSpaCyObj = tokenizerSpaCy(context_text)
spaCy_toks = [i.text for i in contextSpaCyToksSpaCyObj]

reconstruct = ' '.join(spaCy_toks)
reconstruct == context_text

>False 
Run Code Online (Sandbox Code Playgroud)

是否有一种既定的方法可以从 spaCy 令牌重建原始文本?

既定答案应适用于此边缘情况文本(您可以通过单击“改进此问题”按钮直接获取源代码)

" UNCLASSIFIED U.S. Department of State Case No. F-2014-20439 Doc No. C05795279 Date: 01/07/2016\n\n\n …

nlp spacy

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

如何根据元素中的重复子字符串删除字符串列表中的项目?

我有一个来自不同路径的文件列表,但其中一些路径包含相同的文件(和文件名)。

我想删除这些重复的文件,但由于它们来自不同的路径,我就是做不到 set(thelist)

最小示例

说我的清单看起来像这样

thelist = ['/path1/path2/file13332', '/path11/path21/file21', 'path1232/path1112/file13332', '/path1/path2/file13339']
Run Code Online (Sandbox Code Playgroud)

什么是最pythonic的方式来获得这个

deduplicatedList = ['/path1/path2/file13332', '/path11/path21/file21', '/path1/path2/file13339']
Run Code Online (Sandbox Code Playgroud)

文件 file13332 两次出现在列表中。我不关心删除了哪个元素

python

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

标签 统计

python ×6

pandas ×2

argparse ×1

dictionary ×1

nlp ×1

spacy ×1