我有一个国家名称列表..我有一个大型数据框,其中一列是'国家' (是的,它在国家/地区之前和之后有空格)我想根据国家/地区名称创建较小的DataFrames
cleaned_df[cleaned_df[' COUNTRY ']==asia_country_list[1]]
实现这个目的似乎太长了?它确实有用。
现在,
str("%s_data" % (asia_country_list[1]))
给出
'Taiwan_data'
但是当我将上述两个结合起来时:
str("%s_data" % (asia_country_list[1])) = cleaned_df[cleaned_df[' COUNTRY ']==asia_country_list[1]]
我明白了:
SyntaxError: can't assign to function call
很高兴学习其他方法以实现这一点..谢谢vm
答案 0 :(得分:0)
我认为你不应该这样做,但如果你真的需要它:
exec(str("%s_data" % (asia_country_list[1])) +"= cleaned_df[cleaned_df[' COUNTRY ']==asia_country_list[1]]")
应该有效。 使用字典可能会解决您的问题
D={}
D["%s_data" % (asia_country_list[1]))]=cleaned_df[cleaned_df[' COUNTRY ']==asia_country_list[1]]]
编辑:第一个解决方案是一个坏主意:如果一个列被命名为" del cleaning_df"你会实际执行它,它会破坏性的。通常我猜测空间是你的问题。这有点像SQL注入...