我正在撰寫一個程式,我想計算每行中的列數,因為每個檔案都有不同的列數。這意味著我想檢查是否有任何行缺少單元格,如果有,那么我想突出顯示單元格編號。我正在使用熊貓來讀取檔案。我有多個包含另一個CSV檔案的gzip檔案。我讀取檔案的代碼:
#running this under loop
data = pd.read_csv(files,
compression='gzip'
on_bad_lines='warn'
low_memory=False,
sep=r'|',
header=None,
na_values=['NULL',' ','NaN'],
keep_default_na = False
)
我檢查了 StackOverflow,但沒有與這種情況相關的答案。如果有人可以在這里幫助我,我會非常高興。
uj5u.com熱心網友回復:
不確定我是否正確解釋了這一點,但如果您想計算回圈內每個 pandas 資料幀中的列數,有很多選擇。
1) data.shape[1]
2) len(data.columns)
3) len(list(data))
這是一個最小的重現性代碼。將“data = pd.DataFrame(dict)”替換為“data = pd.read_csv(...)”
# Import Required Libraries
import pandas as pd
import numpy as np
# Create dictionaries for the dataframe
dict1 = {'Name': ['Anne', 'Bob', 'Carl'],
'Age': [22, 20, 22],
'Marks': [90, 84, 82]}
dict2 = {'Name': ['Dan', 'Ely', 'Fan'],
'Age': [52, 30, 12],
'Marks': [40, 54, 42]}
for i in [dict1, dict2]:
# Read data
data = pd.DataFrame(dict1)
# Get columns
shape = data.shape # (3,3)
col = shape[1] # 3
# Printing Number of columns
print(f'Number of columns for file <>: {col}')
“這很好用,但在嘗試了你的建議后,我得到了我們資料框中的總列數。我想列印每行包含的列數。例如:S.no Name 1 Adam 2 George 3 NULL 所以,第一行將列印 2,第二行將列印 2,但第三行將列印 1。”
– 拉莫克斯
以下是您的規范的更新答案
獲取每行的非空計數
data.apply(lambda x: x.count(), axis=1)
資料:
A B C
0: 1 2 3
1: 2 nan nan
2: nan nan nan
輸出:
0: 3
1: 1
2: 0
將每行的非空計數添加到資料框中
data['count'] = data.apply(lambda x: x.count(), axis=1)
結果:
A B C count
0: 1 1 3 3
1: 2 nan nan 1
2: nan nan nan 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/484700.html
標籤:Python python-3.x 熊猫 数据框 CSV
