我有一个JSON集合,它们都具有相同的格式和相同的数据不规则性,我想对其进行清理并最终转换为可在Python中使用的数据框。
当我在每个JSON上重复执行相同的过程时,循环似乎是最自然的解决方案。
在清理后将数据帧重新分配给变量时,我遇到了一个问题,因为似乎没有一种自然的方式来存储它们。
我知道Python不赞成动态创建变量名。我想避免使用字典或以其他方式创建holder变量来实现此目的。由于我有一个变量列表和一个df占位符,因此在清理后如何分配/命名变量对我来说并不明显。
下面的代码。关于如何在循环结束时保存清理后的数据帧的任何建议?
vars = [a, b, c]
# clean data iteratively
for i in vars:
df = pd.DataFrame(i)
df['value'] = df['value'].replace('.', np.nan).fillna(method='bfill')
df['value'] = pd.to_numeric(df['value'])
[???] = df
答案 0 :(得分:1)
除非我误解了您要查找的内容,否则似乎一种简单的方法是枚举vars
列表(vars
是内置的btw,在长期),然后通过索引分配回该列表。
vars = [a, b, c]
# clean data iteratively
for (i,v) in enumerate(vars):
df = pd.DataFrame(v)
...
vars[i] = df
答案 1 :(得分:1)
完全可以使用Holder变量。但是,如果您真的不想创建另一个变量,则可以覆盖列表中已有的变量。
vars = [a, b, c]
# clean data iteratively
for index, i in enumerate(vars):
df = pd.DataFrame(i)
df['value'] = df['value'].replace('.', np.nan).fillna(method='bfill')
df['value'] = pd.to_numeric(df['value'])
vars[index] = df
答案 2 :(得分:0)
您将必须使用某种结构来保存已保存的已清理dfs,否则您将被覆盖它们。因此,应该使用列表或字典(甚至是另一个df)。