[英]Unable to populate column in dataframe using value from dict which is present in dict inside list in one of the column
我在数据框中有一列,其值类似于此列表,其中包含字典
[{'symbol': '$', 'value': 5.2, 'currency': 'USD', 'raw': '$5.20', 'name': '$5.20$5.20 ($1.30/Fl Oz)', 'asin': 'B07N31VZP8']
我只想要这本词典中的“价值”。
for i in df["prices"]:
try:
#print(type(i[0]["value"]))
df["prices"] = df["prices"].apply(lambda i:i[0]["value"])
except Exception as e:
print("",e)
但即使我能够获得该值,我也会收到以下错误,我无法在 dataframe 列中填充它
'float' object is not subscribable
如何克服这个问题?
我认为问题在于您多次应用转换。 apply()
已经对 dataframe 中的每一行应用了转换。 如果您删除循环,它应该可以工作:
import pandas as pd
# Create your data
df = pd.DataFrame([
[[{'symbol': '$', 'value': 5.2, 'currency': 'USD', 'raw': '$5.20', 'name': '$5.20$5.20 ($1.30/Fl Oz)', 'asin': 'B07N31VZP8'}]]
, [[{'symbol': '$', 'value': 5.2, 'currency': 'USD', 'raw': '$5.20', 'name': '$5.20$5.20 ($1.30/Fl Oz)', 'asin': 'B07N31VZP8'}]]
], columns=['prices'])
print(df)
df["prices"] = df["prices"].apply(lambda i:i[0]["value"])
print(df)
输入 dataframe:
prices
0 [{'symbol': '$', 'value': 5.2, 'currency': 'US...
1 [{'symbol': '$', 'value': 5.2, 'currency': 'US...
Output dataframe:
prices
0 5.2
1 5.2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.