繁体   English   中英

如何使用 Z3A43B4F88325D94022C0EFA 库在 python 的 2 列 CSV 文件上更改 header 而不创建新的 C9 文件?

[英]How do I change the header on a 2 column CSV file in python using the pandas library without creating a new file?

我正在做一个数据分析项目。 文件Data_Count.csv有两列,是使用 pandas value_counts() function 创建的。 其中一列有标题,而另一列没有。 我怎样才能使两列分别具有标题“距离”和“频率”,而无需创建新文件? 到目前为止,这是我的代码。 抱歉,我是 python 的新手,所以我的代码效率不高。

if __name__ == "__main__":
  count = int(input("How many distance entries do you wish to record?: "))
  with open('results.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile, delimiter=',')
    writer.writerows(calculate(count))

df = pd.read_csv("results.csv", header=None)
df.to_csv("results.csv", header=["Raw"], index=False)

df = pd.read_csv("results.csv")
ft = df["Raw"].value_counts(sort=False)
ft.to_csv('Data_Count.csv')

我希望最终产品看起来像:

Distances       Frequency
1               1
2               3
3               2
4               1
5               2

它目前看起来像:

             Raw
1            1
2            3
3            2
4            1
5            2

此外,是否有可能以某种方式压缩此代码,以便只创建一个文件而不是两个文件(这并不重要,也不必回答)? 作为参考,计算(计数) function 看起来像:

def calculate(n):
    outputs = []
    for i in range(0, n):
        num1 = int(input("Enter first number: "))
        num2 = int(input("Enter second number: "))
        
        if NUMBERS.index(num1) < NUMBERS.index(num2):
            difference = subtract(num1, num2)
            
        elif NUMBERS.index(num1) > NUMBERS.index(num2):
            difference = distance(num1, num2)
            
        else:
            difference = 0
        outputs.append([difference])
    
    return outputs

使用Series.rename_axis设置索引名称:

ft = df["Raw"].value_counts(sort=False).rename_axis('Distances')
ft.to_csv('Data_Count.csv')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM