簡體   English   中英

使用 pandas 從 csv 文件中獲取列的前幾個字符

[英]Fetching the first few characters of a column from a csv file using pandas

我有一個 csv 文件,其中包含一些數據,這里我將放置一些數據。

在此處輸入圖像描述

  • 我需要從“ID”列中獲取前兩個字符作為 output,其中數量 = 10 且最大值大於 40(我們可以從“最大值”列中的前兩個字符中獲取)

所以,output 應該是,

02
04

到目前為止,我已經嘗試過這些解決方案,

代碼:

var1 = data.loc[{data["Quantity"] == 10) & (data["Max value"].str[:2] == 40)]

var2 = (var1["ID"].str[:2])

print(var2)

output:

Empty DataFrame
Columns: [ID, Quantity, Max value]
Index: []
  • 我認為這是因為列名包含空格字符所以,其他方法,

代碼:

var1 = data.loc[(data.Quantity == 10) & (data.Max value.str[:2] > 40)].ID.str[:2]

var2 = (var1.ID.str[:2])

print(var2)

output:

same output
  • 讓我們更改列名,方法3,

代碼:

data.rename(columns = {'Max value':'MaxValue'}, inplace = True)

var1 = data.loc[(data["Quantity"] == 10) & (data["Max value"].str[:2] > 40)]

var2 = (var1["ID"].str[:2])

print(var2)

output:

Series([], Name: ID, dtype: object)
  • 數據存在但沒有任何顯示,順便說一下,我已經嘗試過沒有“.loc”的相同代碼。
  • 有什么想法嗎?

這是做的工作:

df = pd.read_csv(***csv file path***)

df["Max value num"] = [int(max_val[:2]) for max_val in df["Max value"]]
desired_data = df[(df["Quantity"] == 10) & (df["Max value num"] >= 40)]
desired_data = [id[:2] for id in desired_data["ID"]]

這將前 2 個字符存儲在列表中。


如果你想像02 04一樣打印出來,那么使用這個,

df = pd.read_csv(***csv file path***)

df["Max value num"] = [int(max_val[:2]) for max_val in df["Max value"]]
desired_data = df[(df["Quantity"] == 10) & (df["Max value num"] >= 40)]

output = ""
for id in desired_data["ID"]:
  output += f"{id[:2]} "

output.strip(" ")

對於上面的兩個代碼,我都添加了一個Max value num列,用於存儲Max value value 中值的數字部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM