小编Boo*_*d16的帖子

Python - 计算列表字符串中的单词数

我试图找到一个字符串列表中的整个单词的数量,继承人的列表

mylist = ["Mahon Point retail park", "Finglas","Blackpool Mahon", "mahon point  blanchardstown"] 
Run Code Online (Sandbox Code Playgroud)

预期结果:

4
1
2
3
Run Code Online (Sandbox Code Playgroud)

mylist [0]中有4个单词,mylist [1]中有1个单词,依此类推

for x, word in enumerate(mylist):
    for i, subwords in enumerate(word):
        print i
Run Code Online (Sandbox Code Playgroud)

完全不起作用....

你们有什么感想?

python string counter list

4
推荐指数
2
解决办法
5万
查看次数

Pandas Python Regex:错误:没有什么可重复的

我有一个带有几个奇怪字符的数据框,"*"和" - ".

import pandas as pd
import numpy as np

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

我想用'0.00'替换奇怪的字符但我得到一个错误 -

error: nothing to repeat
Run Code Online (Sandbox Code Playgroud)

我知道这与正则表达式有关,但我仍然不知道如何克服这个问题.

我用来替换字符的代码:

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

python regex replace pandas

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

python:将for循环转换为递归函数

首先,我仍然是python的新手,所以请放轻松我.

我已经完成了我的研究,并且我对如何编写递归函数有了基本的了解,但我对我前面的任务完全感到困惑.

我真的很喜欢一些提示和指示,所以我自己可以做到这一点,真正理解.

这是任务:

  1. 通过字典迭代
  2. 检查是否有'儿童'键
  3. 如果是真的,做点什么
  4. 重复

这是问题,

'option'键嵌套在另一个名为'children'的键中.在那里,我想迭代每个'儿童'键,直到它们不再存在.

这是没有递归的代码.当然它失败了,因为它过于陈述,过于僵化.

#level(one/two/three) refer to the level of nesting, easier for me to know where I am     in the loop.
#qdf_v2 is a particular type of file which is essentially a dictionary 

for levelone in qdf_v2['children']:
    if 'children' in levelone:
        store = options
        for leveltwo in levelone['children']:
            if 'children' in leveltwo:
                store = options
                for levelthree in leveltwo['children']:
                    if 'children' in levellevel:
                        repeat....
Run Code Online (Sandbox Code Playgroud)

我想循环通过字典,它是'儿童'键,直到它们不再存在.

这里有一些JSON,你可以在http://www.jsoneditoronline.org/上复制和浏览,看看我在做什么.

{
    "base": "http://panoptic-fearless.ldc.yougov.net/questionnaires/Test_maj_demo_newG4_2/versions/12/",
    "children": …
Run Code Online (Sandbox Code Playgroud)

python recursion for-loop

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

从字典python列表中查找键的值

如何从字典列表中获取给定键的值?

mylist= [
    {
      'powerpoint_color': 'blue',
      'client_name': 'Sport Parents (Regrouped)'
    },
    {
      'sort_order': 'ascending',
      'chart_layout': '1',
      'chart_type': 'bar'
    }
]
Run Code Online (Sandbox Code Playgroud)

'mylist'中的词典数量未知,我想找到附加到键'sort_order'的值.

我失败的尝试:

for key in mylist:
    for value in key:
        print key['sort_order']
Run Code Online (Sandbox Code Playgroud)

谢谢

python dictionary list find

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

python:比较两个列表并按顺序返回匹配项

我有两个不等长的列表,我想按照第一个列表的顺序比较和拉出匹配的值,所以在这个例子中.

a = ['a','s','d','f']
b = ['e','d','y','a','t','v']
Run Code Online (Sandbox Code Playgroud)

预期产量:

['a','d']
Run Code Online (Sandbox Code Playgroud)

我是这样做的,但我忘记了套装不保留订单!如何编辑下面的代码以保留订单.

 set(a).intersection(b)
Run Code Online (Sandbox Code Playgroud)

链接到此如何比较python中的两个列表并返回匹配项

python list set

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

'indexError:元组索引超出范围'whith str.format

我究竟做错了什么?

print('script executed in {time}{1:.2f} seconds'.format(time=elapsed_time))
Run Code Online (Sandbox Code Playgroud)

我明白了:

IndexError: tuple index out of range
Run Code Online (Sandbox Code Playgroud)

预期产量:

script executed in 0.12 seconds
Run Code Online (Sandbox Code Playgroud)

python string formatting

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

基本 Python:对列表中的项目进行排名

我有一个清单:

[55, 41, 45, 43, 60, 47, 33, 70, 42, 42, 44]
Run Code Online (Sandbox Code Playgroud)

我想创建一个新列表,按它们的顺序排列这些项目:

预期输出:

[7, ,2 ,9 ,10, 4, 11, 3, 6, 1, 5, 8]
Run Code Online (Sandbox Code Playgroud)

尝试了这 3 个版本的 func 但它不能正常工作,不知道为什么?

def argsort(seq):

    #return sorted(range(len(seq)), key = seq.__getitem__)

    #return [i for (v, i) in sorted((v, i) for (i, v) in enumerate(seq))]

    return [x for x,y in sorted(enumerate(seq), key = lambda x: x[1])] 
Run Code Online (Sandbox Code Playgroud)

返回:

[6, 1, 8, 9, 3, 10, 2, 5, 0, 4, 7]
Run Code Online (Sandbox Code Playgroud)

python list rank

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

将给定的行移动到DataFrame的末尾

我想从DataFrame中获取一个给定的行,并在前面或附加到同一个DataFrame.

我的代码就是这样,但我不确定我是以正确的方式做到这一点,还是有更简单,更好,更快的方式?

testdf = df.copy()
#get row 
target_row = testdf.ix[[2],:]
#del row from df
testdf.drop([testdf.index[2]], axis=0, inplace=True)
#concat original row to end or start of df
newdf = pd.concat([testdf, target_row], axis=0)
Run Code Online (Sandbox Code Playgroud)

谢谢

python concat dataframe pandas

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

Pandas:比较两列并返回匹配的行

我有两个带有多列的数据框。

我想比较 df1['postcode'] 和 df2['pcd'] 并根据这两列的匹配值构建一个新的 df。

注意 - 我要匹配的两列的长度不一样。

df1
  postcode brand
1 znuee    soony 
2 eusjk    nike
3 zieum    addidas
4 psosk    ferrari

df2
  pcd      brand
1 dodkm    soony 
2 eusjk    nike
3 sjksj    addidas
4 psosk    ferrari
Run Code Online (Sandbox Code Playgroud)

输出:

newdf
  pcd      brand
1 eusjk    nike
2 psosk    ferrari
Run Code Online (Sandbox Code Playgroud)

我的尝试,但列上的长度不匹配

newdf = (df2['postcode'] == df1).all(axis=1).astype(int)
Run Code Online (Sandbox Code Playgroud)

我需要使用某种循环功能吗?

match vlookup dataframe pandas

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

python pandas:从财政年度和月份获得财政季度(英国)

我有一个数据框,有两个有用的列1)会计年度,2)日期.我想添加一个显示财政季度的新列.

仅供参考 - 英国财政年度为4月1日至3月31日

我的数据看起来像:

    fiscal year  date
    FY15/16      2015-11-01
    FY14/15      2014-10-01
    FY15/16      2016-02-01
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像这样:

    fiscal year  date        Quarter
    FY15/16      2015-11-01  q3
    FY14/15      2014-10-01  q3
    FY15/16      2016-02-01  q4
Run Code Online (Sandbox Code Playgroud)

真的希望我的季度合适!

下面的代码有效,但我相信它会回归美国的金融区,但我想要英国.

df['Quater'] = df['Date'].dt.quarter 
Run Code Online (Sandbox Code Playgroud)

python date pandas fiscal

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