小编Boo*_*d16的帖子

在嵌套的有序字典 python 中查找给定键的值

我试图从嵌套的 OrderedDict 中找到给定键的值。

关键点:

  • 我不知道这个 dict 会嵌套多深
  • 我正在寻找的密钥的名称是不变的,它将在字典中的某个地方

我想在这个例子中返回名为“powerpoint_color”的键的值......

mydict= OrderedDict([('KYS_Q1AA_YouthSportsTrustSportParents_P',
                      OrderedDict([('KYS_Q1AA',
                                    OrderedDict([('chart_layout', '3'),
                                                 ('client_name', 'Sport Parents (Regrouped)'),
                                                 ('sort_order', 'asending'),
                                                 ('chart_type', 'pie'),
                                                 ('powerpoint_color', 'blue'),
                                                 ('crossbreak', 'Total')]))])),
Run Code Online (Sandbox Code Playgroud)

我最初的想法是做这样的事情:

print mydict[x][i]['powerpoint_color']
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

list indices must be integers, not str
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

python get ordereddictionary find key-value

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

Pandas Python:对数据框进行排序但不包括给定的行

我有 df 看起来像这样:

Label                      Base
Label                          
Très à gauche              4.51
Très à droite             10.49
Ni à gauche, ni à droite  24.21
Je ne sais pas             5.60
Au centre                  8.69
A gauche                  23.74
A droite                  22.75
Run Code Online (Sandbox Code Playgroud)

我想按升序排序,但我不希望排序中包含“A gauche”和“A droite”。

下面的代码做了我想要的,但我不确定如何从排序中排除“A gauche”和“A droite”。

 df_table = df_table.sort(columns="Base",ascending=True)
Run Code Online (Sandbox Code Playgroud)

预期产出

Label                      Base
Label                          
Très à gauche              4.51
Je ne sais pas             5.60
Au centre                  8.69
Très à droite             10.49
Ni à gauche, ni à droite  24.21
A gauche                  23.74
A droite                  22.75
Run Code Online (Sandbox Code Playgroud)

谢谢

python sorting dataframe pandas

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

使用python解析lxml:如何使用objectify

我试图在spss文件后面读取xml,我想从etree转向objectify.

如何在下面转换此函数以返回物体对象?我想这样做是因为客观化xml对象对我(作为新手)更容易使用,因为它更加pythonic.

def get_etree(path_file):

    from lxml import etree

    with open(path_file, 'r+') as f:
        xml_text = f.read()     
    recovering_parser = etree.XMLParser(recover=True)    
    xml = etree.parse(StringIO(xml_text), parser=recovering_parser)

    return xml
Run Code Online (Sandbox Code Playgroud)

我失败的尝试:

def get_etree(path_file):

    from lxml import etree, objectify

    with open(path_file, 'r+') as f:
        xml_text = objectify.fromstring(xml)   

    return xml
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

lxml.etree.XMLSyntaxError: xmlns:mdm: 'http://www.spss.com/mr/dm/metadatamodel/Arc 3/2000-02-04' is not a valid URI
Run Code Online (Sandbox Code Playgroud)

python xml objectify

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

iPython Notebook没有将Dataframe打印为表格

我正在尝试在ipython笔记本中打印df,但它不会将其打印为表格.

data = {'year': [2010, 2011, 2012, 2011, 2012, 2010, 2011, 2012],
        'team': ['Bears', 'Bears', 'Bears', 'Packers', 'Packers', 'Lions', 'Lions', 'Lions'],
        'wins': [11, 8, 10, 15, 11, 6, 10, 4],
        'losses': [5, 8, 6, 1, 5, 10, 6, 12]}
football = pd.DataFrame(data, columns=['year', 'team', 'wins', 'losses'])

print football
Run Code Online (Sandbox Code Playgroud)

产量

   year     team  wins  losses
0  2010    Bears    11       5
1  2011    Bears     8       8
2  2012    Bears    10       6
3  2011  Packers    15       1
4  2012  Packers    11       5
5  2010 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas ipython-notebook

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

python:如果不是这个而不是那个

我想写一个条件来检查两个变量是否都是False但是我不确定我使用的是否正确:

if not var1 and not var2: 
     #do something 
Run Code Online (Sandbox Code Playgroud)

或应该是:

if not (var1 and var2):
    #do something
Run Code Online (Sandbox Code Playgroud)

python conditional-statements

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

python + pandas - 将df转储到循环中的excel

我有100个熊猫dfs的词典.

我想循环遍历dict中的每个df并将其转储到excel中,所有这些都在一张纸上,一个接一个,中间有一个空行.

我的尝试:

writer = pd.ExcelWriter('output.xlsx', engine='xlsxwriter')
workbook = writer.book

for key, values in dd.iteritems():
    df = dd[key]['chart_data']
    df.to_excel(writer, sheet_name='Sheet 1', index=False)

writer.save()
workbook.close()
Run Code Online (Sandbox Code Playgroud)

我认为它会覆盖dfs.

有什么建议?

python excel dataframe pandas

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

如果在Python中大于x,则将浮点列表转换为最接近的整数

我是Python的新手,我做了我的研究,但没有走得太远,因此请求帮助.

我有一个浮点列表,如果元素大于0.50,我想要舍入到最接近的整数.

list = [54.12,86.22,0.30,0.90,0.80,14.33,0.20]
Run Code Online (Sandbox Code Playgroud)

预期结果:

list = [54,86,0.30,1,1,14,0.20]
Run Code Online (Sandbox Code Playgroud)

python math int list converter

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

pandas:带正则表达式的Dataframe.replace()

我有一个看起来像这样的表:

df_raw = pd.DataFrame(dict(A = pd.Series(['1.00','-1']), B = pd.Series(['1.0','-45.00','-'])))

    A       B
0   1.00    1.0
1   -1      -45.00
2   NaN     -
Run Code Online (Sandbox Code Playgroud)

我想使用dataframe.replace()将' - '替换为'0.00',但由于负值'-1',' - 45.00'而挣扎.

如何忽略负值并仅将' - '替换为'0.00'?

我的代码:

df_raw = df_raw.replace(['-','\*'], ['0.00','0.00'], regex=True).astype(np.float64)
Run Code Online (Sandbox Code Playgroud)

错误代码:

ValueError: invalid literal for float(): 0.0045.00
Run Code Online (Sandbox Code Playgroud)

python string floating-point replace pandas

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

在源树中撤消合并

我有4个分支

1. master
2. develop
3. online_report
4. issue48 
Run Code Online (Sandbox Code Playgroud)

开发人员 x 在 中工作online_report,他不小心合并了他的工作develop并推送了它。我想撤消此合并。

我在合并之前点击了我想返回的提交(以蓝色突出显示),reset current branch to this commit然后我选择了“ hard” ,然后我选择了“ ”。develop现在正在提交但我不知道下一步该怎么做?

我想保留develop分支,但我现在不希望online_report分支进入它。

在此处输入图片说明

git atlassian-sourcetree

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

将字符串浮点数列表转换为带有2个小数点的浮点数列表

我的研究和做了几项改进,非常接近解决这个问题,但现在我被困住了,需要帮助.

任务:将字符串浮点数列表转换为带有2个小数点的浮点数

原始清单:

mylist = ['17.21', '33.40', '24.39', '3.48', '1.02', '0.61', '18.03', '1.84']
Run Code Online (Sandbox Code Playgroud)

目标

mylist = [17.21, 33.40, 24.39, 3.48, 1.02, 0.61, 18.03, 1.84]
Run Code Online (Sandbox Code Playgroud)

我的脚本尝试了

mylisttwo = map(float, mylist)
Run Code Online (Sandbox Code Playgroud)

它给了我这个

[17.21, 33.4, 24.39, 3.48, 1.02, 0.60999999999999999, 18.03, 1.84]
Run Code Online (Sandbox Code Playgroud)

然后我想id格式化它

floatlist = []
for item in mylisttwo:
    floatlist.append("{0:.2f}".format(item))
Run Code Online (Sandbox Code Playgroud)

但这给了我一个字符串浮动列表!arghhhh

['17.21', '33.40', '24.39', '3.48', '1.02', '0.61', '18.03', '1.84']
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

谢谢

python floating-point list decimal

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