#python #pandas #csv
#питон #панды #csv-файл
Вопрос:
Я пытаюсь прочитать некоторые данные (имена геномов) из файла ‘.csv’, я хочу найти длину каждого столбца, а затем построить гистограмму с этими данными, но каким-то образом мой скрипт показывает, что все столбцы имеют одинаковую длину, что неверно. У меня есть 4 столбца в моем файле, и в каждой ячейке столбца есть имя генома. Неправильное количество столбцов впоследствии также будет представлено в файле ‘.png’. Я удалил когда-либо значение ‘0’ и в моем файле, но проблема все равно не исчезла. Это мой код :
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
ca1 = []
casU3 =[]
casU5 =[]
casBig = []
df = pd.read_csv('statistics.csv')
ca1 = df['1 cassette']
casU3 = df['2-3 cassettes']
casU5 = df['4-5 cassettes']
casBig = df['More then 5 cassettes']
cas1 = len(list(filter(None, ca1)))
casUntil3 = len(list(filter(None, casU3)))
casUntil5 = len(list(filter(None, casU5)))
Bigcas = len(list(filter(None, casBig)))
genomes = cas1 casUntil3 casUntil5 Bigcas
height = [cas1,casUntil3,casUntil5,Bigcas]
bars = ('No.of genomes with only 1 cassette','2-3 cassettes','4-5 cassettes','more than 5 cassettes')
y_pos = np.arange(len(bars))
plt.bar(y_pos, height, tick_label = bars, width = 0.5, color=(0.1, 0.1, 0.1, 0.1), edgecolor='blue')
plt.ylabel('Number of genomes')
plt.title('Statistics over %s genomes with CRISPR immune system' %genomes)
plt.savefig('./histogramCRISPR.png')
plt.show()
Код короткий и простой, но почему-то я не могу найти проблему. Пожалуйста, помогите.
Ответ №1:
Невозможно иметь не равные столбцы, либо столбцы будут иметь значения NaN, либо некоторые или другие значения.
пожалуйста, проверьте наличие значений NaN.
Спасибо.
Комментарии:
1. Спасибо, но я сделал, и ничего не изменилось.
Ответ №2:
Непонятно, что столбцы не переходят к столбцам, либо столбцы будут иметь значения NaN, либо несколько или другие значения. Удалите значения Nan с помощью кода:
df.drop.isna()
Вы можете увидеть NAN, который является кодом:
df.isnull().sum()
`