我有280个CSV文件,我需要为每个文件创建一行,其中包含其所有数值的总和价值观。这个很简单,但我的问题是求和必须在第一行。你知道吗
我一直在用这段代码在文件中创建求和行
df = pd.read_csv(file_path,sep=";",header=2, engine="python")
df.[Soma] = df.sum(numeric_only="boolean")
现在我需要把总和移到第一行。我显然不是第一个有这个问题的人,但我在努力让它工作的时候遇到了麻烦!我的csv文件很大,所以我不能简单地手动重新排序数据框中的行。你知道吗
这里有一个很好的解决方案: Python Pandas: How to move one row to the first row of a Dataframe?
为了能够在这里发布数据帧,我排除了CSV文件中的大多数行和列。这就是它现在的样子(仍然没有成功使它工作):
DATA_BASE UF COD MUN CNPJ
0 199407.0 AC 1030.0 MANCIO LIMA 4064077.0
1 199407.0 AC 5184.0 MANOEL URBANO 4064077.0
2 199407.0 AC 9465.0 ASSIS BRASIL 4064077.0
3 199407.0 AC 15978.0 FEIJO 4064077.0
4 199407.0 AC 15978.0 FEIJO 4902979.0
5 199407.0 AC 18690.0 XAPURI 0.0
soma 1196442.0 NaN 66325.0 NaN 21159287.0
更新
好的,多亏了@piRSquared,我想我有一个很好的书面方法函数:
def putfirst(df, i):
return df.iloc[(np.arange(len(df)) != i).argsort()]
putfirst(df,df.index.get_loc('soma'))
但无论出于什么原因,数据帧都没有发生任何变化。我没有得到任何错误,所以我认为Python只是没有调用函数,但我不知道为什么。 在我看来,压痕是对的:
考虑示例数据帧
df
使用
iloc
和argsort
我将依靠两件事
False
放在第一位,因此当一个简单的序列数组不等于目标行时,我进行排序。你知道吗True
值将保持相同的相对顺序。你知道吗argsort
返回需要用iloc
切片的数组。你知道吗head
和tail
用于交换最后一行与您的样品一起
或者
或者
相关问题 更多 >
编程相关推荐