Python 字典,如何创建一个包含字符串和实际键组合的键?
Python dictionary, how can I create a key with a string and the actual key combined?
我希望这是一个非常简单的问题,但对于没有很多 python 背景的我来说,我找不到答案。
df = pd.DataFrame(
{'Messung': ['10bar','10bar','10bar','20bar','20bar'],
'Zahl': [1, 2, 3, 4, 5],
'Buchstabe': ['a','b','c','d','e']})
有一个 DataFrame(为此 post 制作了一个更简单的测试 DF),我在其中循环遍历一列并比较字符串的前 2 个数字。整个专栏最后有 20 个键。每次找到该键时,将整行附加到该键。
d={}
for row, item in enumerate(df['Messung']):
key=item[0:2]
if key not in d:
d[key] = []
d[key].append(df.iloc[row])
此代码有效,但我的第一次尝试是不同的。
我想要字典,其中的键名为 'RP_10'、'RP_20'.
d={}
for row, item in enumerate(df['Messung']):
key=item[0:2]
if key not in d:
d['RP_'+key] = []
d['RP_'+key].append(df.iloc[row])
有人可以向我解释一下为什么这不起作用吗?我如何编写代码才能得到 'RP_10'、'RP_20' 等等?
你能试试下面的代码吗?你在 if 条件下犯了一个小错误。
d={}
for row, item in enumerate(df['Messung']):
key=item[0:2]
key = "RP_"+key
if key not in d:
d[key] = []
d[key].append(df.iloc[row])
您还可以使用 python.Then 的 setdefault(),您的代码如下所示:
d={}
for row, item in enumerate(df['Messung']):
key=item[0:2]
key = "RP_"+key
d.setdefault(key, []).append(df.iloc[row])
在尝试您的解决方案时我注意到,我什至可以删除带有 key=item[0:2] 的行并直接使用 'RP_' 和 item[0:2][=11= 构建我的密钥]
d={}
for row, item in enumerate(df['Messung']):
key = "RP_"+item[0:2]
d.setdefault(key, []).append(df.iloc[row])
我希望这是一个非常简单的问题,但对于没有很多 python 背景的我来说,我找不到答案。
df = pd.DataFrame(
{'Messung': ['10bar','10bar','10bar','20bar','20bar'],
'Zahl': [1, 2, 3, 4, 5],
'Buchstabe': ['a','b','c','d','e']})
有一个 DataFrame(为此 post 制作了一个更简单的测试 DF),我在其中循环遍历一列并比较字符串的前 2 个数字。整个专栏最后有 20 个键。每次找到该键时,将整行附加到该键。
d={}
for row, item in enumerate(df['Messung']):
key=item[0:2]
if key not in d:
d[key] = []
d[key].append(df.iloc[row])
此代码有效,但我的第一次尝试是不同的。 我想要字典,其中的键名为 'RP_10'、'RP_20'.
d={}
for row, item in enumerate(df['Messung']):
key=item[0:2]
if key not in d:
d['RP_'+key] = []
d['RP_'+key].append(df.iloc[row])
有人可以向我解释一下为什么这不起作用吗?我如何编写代码才能得到 'RP_10'、'RP_20' 等等?
你能试试下面的代码吗?你在 if 条件下犯了一个小错误。
d={}
for row, item in enumerate(df['Messung']):
key=item[0:2]
key = "RP_"+key
if key not in d:
d[key] = []
d[key].append(df.iloc[row])
您还可以使用 python.Then 的 setdefault(),您的代码如下所示:
d={}
for row, item in enumerate(df['Messung']):
key=item[0:2]
key = "RP_"+key
d.setdefault(key, []).append(df.iloc[row])
在尝试您的解决方案时我注意到,我什至可以删除带有 key=item[0:2] 的行并直接使用 'RP_' 和 item[0:2][=11= 构建我的密钥]
d={}
for row, item in enumerate(df['Messung']):
key = "RP_"+item[0:2]
d.setdefault(key, []).append(df.iloc[row])