我有一个csv
文件,可以用pandas
处理。该列名为manual_raw_value
我希望检索此列中的唯一字符并生成histogram
。
要检索所有唯一值,请执行以下操作:
unique_values = set(df.manual_raw_value.apply(list).sum())
{' ',
'!',
'"',
'%',
'&',
"'",
'(',
')',
'*',
'+',
',',
'-',
'.',
'/',
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
':',
'=',
'>',
'?',
'@',
'_',
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n',
'o',
'p',
'q',
'r',
's',
't',
'u',
'v',
'w',
'x',
'y',
'z'}
这是数据
manual_raw_value
6,35
11,68
VOTRE
AVEL AR VRO
2292
questions.
nb
les
937,99
à
et
TTC
1
620
Echéance
vos
ROB21
Pièce
AGRIAL
désignation
des
taux
13s
2
par
le
mois,
32
21/07/2016
FR
au
0
téléphonique
BROYEUR
et
ST
TVA
de
des
ECHEANCIER
à
ne
lieu
481,67
N°0016
de
ministère
de
20/11/2015
Si
vous
59
cas
EUR
3.19
2
contrôle
assurances
BAS
et
4423873
renseignements
6104219
C9DECOMPTEDIVERS
6635
DE
10825
现在,因为我想要unique values
想要制作一个直方图。
这是我试过的
import pandas as pd
def find_group(val):
unique_values = set(df.manual_raw_value.apply(list).sum())
for unique in unique_values:
# get the number of occurence of all the unique values
# then make a histogram
df = pd.read_csv('words.csv',sep=',')
df = df.astype(str)
df.manual_raw_value=df.manual_raw_value.str.lower()
df.manual_raw_value.apply(find_group)
df.manual_raw_value.apply(find_group).value_counts().plot(kind='bar')
唯一值是函数返回的值
unique_values = set(df.manual_raw_value.apply(list).sum())
{' ', '!', '"', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', .....
等等。
现在查看手册row values : 6,35 11,68
的两个值,然后我们可以说1 appears twice 6 twice ',' twice 3 one time 5 one time
修改-1
我尝试使用此代码来制作alpha cells
,alpahnumeric
单元格和special char cells
def find_group(val):
val = str(val)
if val.isalpha():
return 'Alpha'
elif val.isalnum and any(c.isalpha() for c in val):
return 'Alphanumeric'
else:
return 'Special'
df.Column_values.apply(find_group)
df.Column_values.apply(find_group).value_counts().plot(kind='bar')
现在我想在角色级别制作直方图:
通过循环遍历每个单元格来获取列中的唯一字符。 (已完成)
计算所有单元格中这些字符的出现次数并进行直方图。 #l被卡住了 - 一次
修改-2
让我们举一个实际的例子。我们说我的专栏名为Column_value
Column_value
hello
good
morning
how
are
you
1 - 每行l计算每个字符的出现次数
hello : h=1 l=2 o=1 e=1
good : g=1 o=2 d=1
morning : m=1 o=1 r=1 n=2 g=1
how: h=1 o=1 w=1
are : a=1 r=1 e=1
you: y=1 o=1 u=1
2-总和得到所有行中每个字符的出现次数
h=1+1=2
l=2
o=2+1+1+1=5
e=1+1=2
g=1
d=1
等等 现在,制作直方图 h = 2,l = 2,o = 5,e = 2,g = 1,d = 1
答案 0 :(得分:2)
以OP为例。
import pandas as pd
words=["hello","good","morning","how","are","you"]
df=pd.DataFrame(words,columns=['words'])
pd.Series(list(df.words.str.cat())).value_counts().plot(kind="bar")
答案 1 :(得分:0)
pandas系列有一个内置的直方图功能。例如:
df['col'] = [1,1,1,2,3,4,4]
df.col.hist()
将返回每个值出现的直方图。
但是,由于非数值可能会导致错误,因此您还可以使用value_counts
和plot(kind='bar')
方法。
df.col.value_counts()
将返回系列,其值为索引并计为值。
然后你可以运行plot
来显示直方图:
df.col.value_counts().plot(kind = 'bar')