[英]Applying function to columns of a Pandas DataFrame, conditional on data type
[英]applying conditional on data in pandas dataframe and ignore headers
我在 CSV 文件中有這種格式的數據。 我想要一個 excel 文件,其中所有大於 0 的值都替換為 1。現在我已經嘗試過這段代碼,但問題是我丟失了標題(例如 1960/1961 年),或者當我忽略它們時出現錯誤。
這是我的代碼跟蹤。
import pandas as pd
data = pd.read_csv("first.csv")
data1 = data.apply(pd.to_numeric,errors='coerce')
data1 = (data1>0).astype(int)
data2 = data1.combine_first(data)
print(data2)
我希望輸出像
這是 csv 文件的 URL,您可以下載以運行給定的代碼。 https://gofile.io/?c=eWd049
numpy 有一個 .ceil 方法可以向上舍入,而 .floor 可以向下舍入。 numpy.ceil() numpy.floor()
所以它應該是這樣的(一旦你將年份/年份更改為列標題):
import numpy as np
for column in data.columns:
data[column]=data[column].apply(lambda x: np.ceil(x) if x<1 else np.floor(x))
對於列標題問題:指定 dtype 並檢查分隔符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.