使用List +字符串中的项目命名DataFrames

时间:2016-07-18 09:46:38

标签: python

我有一个国家名称列表..我有一个大型数据框,其中一列是'国家' (是的,它在国家/地区之前和之后有空格)我想根据国家/地区名称创建较小的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

1 个答案:

答案 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注入...