我有这种形式的数据:
ds y
1 2015-12-31 51737806366
2 2016-01-01 451800500
3 2016-01-04 48503189
4 2016-01-06 221000
5 2016-01-07 542483038
6 2016-01-08 628189789
7 2016-01-09 556762005
8 2016-01-10 195672447
9 2016-01-11 279202668
10 2016-01-12 540234196
11 2016-01-13 3403591404
12 2016-01-14 610409176
Run Code Online (Sandbox Code Playgroud)
'y'列上的值表示收入,货币单位.我以原始形式对这些数据进行了探索性绘图,发现该图不太有用,数据的视觉效果不合适,所以为了改进我的可视化,我将一个log2()转换应用到了'y'列...它工作得很好:
ds y
1 2015-12-31 35.59050
2 2016-01-01 28.75111
3 2016-01-04 25.53158
4 2016-01-06 17.75369
5 2016-01-07 29.01500
6 2016-01-08 29.22663
7 2016-01-09 29.05249
8 2016-01-10 27.54387
9 2016-01-11 28.05674
10 2016-01-12 29.00901
11 2016-01-13 31.66441 …Run Code Online (Sandbox Code Playgroud) 我有一个pandas.Series像这样的句子:
0 mi sobrino carlos bajó conmigo el lunes
1 juan antonio es un tio guay
2 voy al cine con ramón
3 pepe el panadero siempre se porta bien conmigo
4 martha me hace feliz todos los días
Run Code Online (Sandbox Code Playgroud)
另一方面,我有一个像这样的名字和姓氏列表:
l = ['juan', 'antonio', 'esther', 'josefa', 'mariano', 'cristina', 'carlos']
我想将系列中的句子与列表中的名称相匹配。实际数据比这个例子大得多,所以我认为系列和列表之间的元素比较不会有效,所以我创建了一个包含名称列表中所有字符串的大字符串,如下所示:
'|'.join(l)
我尝试创建一个布尔掩码,稍后允许我通过 true 或 false 值索引包含名称列表中名称的句子,如下所示:
series.apply(lambda x: x in '|'.join(l))
Run Code Online (Sandbox Code Playgroud)
但它返回:
0 False
1 False
2 False
3 False
4 False
Run Code Online (Sandbox Code Playgroud)
这显然不行。
我也尝试使用,str.contains()但它的行为不像我预期的那样,因为此方法将查看名称列表中是否存在系列中的任何子字符串,这不是我需要的(即我需要完全匹配)。
你能在这里指出我正确的方向吗?
非常感谢您提前
我有以下字典列表:
dicts = [{'ENE001SOLC': 3},
{'TRN002SIGN': 4},
{'ENE001SOLC': 4, 'TRN002SIGN': 3},
{'TRN002SIGN': 3},
{'TRN002SOLC': 3, 'SAL016DECL': 3},
{'ENE001SOLC': 5, 'SAL016DECL': 3},
{'ENE001SOLC': 4}]
Run Code Online (Sandbox Code Playgroud)
我想按每个字典中的值以降序对列表进行排序(高位在前)。我已经访问过很多帖子,但是当每个字典的键值相同时,所有帖子都提供了对列表进行排序的解决方案,但事实并非如此。预期的输出将是这样的:
[{'ENE001SOLC': 5, 'SAL016DECL': 3},
{'ENE001SOLC': 4, 'TRN002SIGN': 3},
{'ENE001SOLC': 4},
{'TRN002SIGN': 4},
{'TRN002SOLC': 3, 'SAL016DECL': 3},
{'ENE001SOLC': 3},
{'TRN002SIGN': 3}]
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点??任何帮助都感激不尽。
提前非常感谢你
我有一个像这样的熊猫系列:
0 $233.94
1 $214.14
2 $208.74
3 $232.14
4 $187.15
5 $262.73
6 $176.35
7 $266.33
8 $174.55
9 $221.34
10 $199.74
11 $228.54
12 $228.54
13 $196.15
14 $269.93
15 $257.33
16 $246.53
17 $226.74
Run Code Online (Sandbox Code Playgroud)
我想摆脱美元符号所以我可以将值转换为数字.我做了一个功能,以便这样做:
def strip_dollar(series):
for number in dollar:
if number[0] == '$':
number[0].replace('$', ' ')
return dollar
Run Code Online (Sandbox Code Playgroud)
这个函数返回原始系列不变,没有任何变化,我不知道为什么.
关于如何做到这一点的任何想法?
提前致谢
我有这个字典,其中键表示原子类型,值表示原子质量:
mass = {'H': 1.007825, 'C': 12.01, 'O': 15.9994, 'N': 14.0067, 'S': 31.972071,
'P': 30.973762}
Run Code Online (Sandbox Code Playgroud)
我想要做的是创建一个给出分子的函数,例如('H2-N-C6-H4-C-O-2H'),迭代mass字典并计算给定分子上的原子质量.质量的值必须乘以原子类型后面的数字:H2 = H.value * 2
我知道,首先我必须隔离给定分子的键,为此我可以使用string.split('-').然后,我想if如果给定分子的键在字典中,我可以使用和阻止建立条件来完成.但后来我迷失了我应该如何继续为字典中的每个键找到质量.
预期结果应该是这样的:
mass_counter('H2-N15-P3')
out[0] 39351.14
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做?
编辑:
这是我到目前为止所尝试的
# Atomic masses
mass = {'H': 1.007825, 'C': 12.01, 'O': 15.9994, 'N': 14.0067, 'S': 31.972071,
'P': 30.973762}
def calculate_atomic_mass(molecule):
"""
Calculate the atomic mass of a given molecule
"""
mass = 0.0
mol = molecule.split('-')
for key in mass:
if key in mol: …Run Code Online (Sandbox Code Playgroud) 我有 2 个字符串列表:
['Tipo de fertilizante',
'N',
'P2O5',
'K2O',
'S',
'CaO',
'MgO',
'Zn',
'Solubilidad g/100cc H2O',
'Precio (€/100 kg)',
'€/UF (N)',
'€/UF (P2O5)',
'€/UF (K2O)',
'€/UF (S)',
'€/UF (CaO)',
'€/UF (MgO)',
'JERARQUIA - (N)',
'JERARQUIA - (P2O5)',
'JERARQUIA - (K2O)',
'JERARQUIA - (S)',
'JERARQUIA - (CaO)',
'JERARQUIA - (MgO)',
'Abono']
Run Code Online (Sandbox Code Playgroud)
这是第二个:
['JERARQUIA - (N)',
'JERARQUIA - (P2O5)',
'JERARQUIA - (K2O)',
'JERARQUIA - (S)',
'JERARQUIA - (CaO)',
'JERARQUIA - (MgO)']
Run Code Online (Sandbox Code Playgroud)
我想获取包含在第二个元素中的第一个元素,因此所需的结果是:
['N',
'P2O5',
'K2O',
'S',
'CaO',
'MgO',
'JERARQUIA - (N)',
'JERARQUIA …Run Code Online (Sandbox Code Playgroud)