我有一个带有多个标头的熊猫数据框。我想知道如何将其转换为嵌套目录列表。熊猫数据框中的每一行将是列表中的嵌套字典。
这是一个例子
#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) 假设我有一个清单的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'])
但会导致错误
假设我有一个可以接受 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 参数?
假设我想从网站下载文件,文件按此样式列出
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的值编写代码,但我觉得有一种更优雅的方式来编写代码.
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 的方法可以一次性完成此操作?
' '.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 …
我有一个来自不同路径的文件列表,但其中一些路径包含相同的文件(和文件名)。
我想删除这些重复的文件,但由于它们来自不同的路径,我就是做不到 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 两次出现在列表中。我不关心删除了哪个元素