我有一个包含支出信息的文本文档。我想使用pandas和Python 3将文本转换为具有两列的数据框,而不必通过将相同的名称合并为一行并添加各自的数量以产生一个总数来重复行名称。
原始的“ spending.txt:”
CATEGORY TOTAL
shaving 350
coffee 100
food 350
transport 100
所需的输出数据帧:
{{1}}
答案 0 :(得分:1)
这应该做到:
df = pd.read_csv('spending.txt', header=None, sep='\s+')
df.columns = ['category', 'total']
df.groupby('category', as_index=False).sum()
category total
0 coffee 100
1 food 350
2 shaving 350
3 transport 100
答案 1 :(得分:0)
读入数据
function someFunctionName(arr) {
...
var rVals = SpreadsheetApp.getActiveSpreadsheet().getRange(arr).getValues();
var payload = JSON.stringify({
'rows': rVals
});
var payload = JSON.stringify({
'rows': arr
});
...
}
temp = StringIO("""
shaving 150
shaving 200
coffee 100
food 350
transport 60
transport 40
""")
df = pd.read_csv(temp, sep='\s+', engine='python', header=None)
输出
df.groupby(0).sum().reset_index().rename({0:'category',1:'total'}, axis=1)
答案 2 :(得分:0)
df = pd.read_csv('test.txt', sep=" ", header=None)
df.rename(columns={0:'category',1:'Total'},inplace=True)
final_df = df.groupby(['category'],as_index=False)['Total'].sum()
print(final_df)
category Total
0 coffee 100
1 food 350
2 shaving 350
3 transport 100