簡體   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