如何在 pandas 数据帧上小写 JSON 对象
How do I lowercase a JSON object on pandas dataframe
这是我的数据:
Id var_map
1 {'email_count': 3.0, 'outgoing': 90.0}
2 {'Email_Count': 5.0, 'outgoing': 91.0}
我做的是
df['var_map'] = score_data['var_map'].str.lower()
结果和我预想的不一样,错误是这样的
Id var_map
1 NaN
2 NaN
我想怎么解决这个问题
这是一种使用 apply
的方法。
例如:
import pandas as pd
df = pd.DataFrame({"var_map": [{'email_count': 3.0, 'outgoing': 90.0}, {'Email_Count': 5.0, 'outgoing': 91.0}]})
df["var_map"] = df["var_map"].apply(lambda x: {k.lower(): v for k,v in x.items()})
print(df)
输出:
var_map
0 {u'outgoing': 90.0, u'email_count': 3.0}
1 {u'outgoing': 91.0, u'email_count': 5.0}
def var_map_lower(var_map):
return {x.lower(): y for (x,y) in var_map.items()}
df['var_map'] = df['var_map'].apply(var_map_lower)
你能试试这个吗?
您是否尝试过将数据列转换为字符串?
import pandas as pd
data['var'] = data['var_map'].astype(str).str.lower()
print data
这是我的数据:
Id var_map
1 {'email_count': 3.0, 'outgoing': 90.0}
2 {'Email_Count': 5.0, 'outgoing': 91.0}
我做的是
df['var_map'] = score_data['var_map'].str.lower()
结果和我预想的不一样,错误是这样的
Id var_map
1 NaN
2 NaN
我想怎么解决这个问题
这是一种使用 apply
的方法。
例如:
import pandas as pd
df = pd.DataFrame({"var_map": [{'email_count': 3.0, 'outgoing': 90.0}, {'Email_Count': 5.0, 'outgoing': 91.0}]})
df["var_map"] = df["var_map"].apply(lambda x: {k.lower(): v for k,v in x.items()})
print(df)
输出:
var_map
0 {u'outgoing': 90.0, u'email_count': 3.0}
1 {u'outgoing': 91.0, u'email_count': 5.0}
def var_map_lower(var_map):
return {x.lower(): y for (x,y) in var_map.items()}
df['var_map'] = df['var_map'].apply(var_map_lower)
你能试试这个吗?
您是否尝试过将数据列转换为字符串?
import pandas as pd
data['var'] = data['var_map'].astype(str).str.lower()
print data