将从for循环获取的三个值放入DataFrame/Python
这个想法很简单,你打开一个文本文件,阅读它,你会发现这些字母重复了多少次,然后估计每个字母在文本中的百分比将从for循环获取的三个值放入DataFrame/Python,python,pandas,dataframe,Python,Pandas,Dataframe,这个想法很简单,你打开一个文本文件,阅读它,你会发现这些字母重复了多少次,然后估计每个字母在文本中的百分比 fileName = input("Enter file Name: ") with open(fileName) as f: text = f.read() print(text) def count_char(text, char): count=0 for c in text: if c == char: count+
fileName = input("Enter file Name: ")
with open(fileName) as f:
text = f.read()
print(text)
def count_char(text, char):
count=0
for c in text:
if c == char:
count+=1
return count
for char in "ABCDEFGHIJKLMNOPQRSTUVWXYZ" and "abcdefghijklmnopqrstuvwxyz":
percentage = 100 * count_char(text, char) / len(text)
print("\n letter: {0} is taking {1}% of the text and that is {2}".format(char, round(percentage,2), count_char(text, char)))
我确实做到了这一点,但我无法将这些值放入dataframe以使其看起来更友好
另外,如果用户输入了一个不存在的文件(“错误404文件未找到!”)消息,我想做一个if-else语句。一旦您读入该文件,使内容成为名称
文本中的字符串。您可以将其传递给pandas.value\u counts
函数,以获得每个字符的计数。为了只过滤出字母,我使用filter
函数并将str.isalpha
作为谓词传递,以确定每个字符的真实性
pandas.value\u计数
您的代码应该如下所示:
import pandas as pd
import os
fileName = input("Enter file Name: ")
if os.path.exists(fileName):
with open(fileName) as f:
text = f.read()
else:
print(("Error 404 File Not Found!")
counts = pd.value_counts([*filter(str.isalpha, text)]) / len(text)
print(counts)
a 0.064935
f 0.058442
q 0.051948
d 0.045455
r 0.045455
j 0.038961
e 0.032468
l 0.032468
k 0.032468
s 0.032468
t 0.032468
u 0.032468
i 0.032468
p 0.025974
w 0.025974
h 0.025974
g 0.019481
o 0.019481
y 0.012987
n 0.012987
T 0.006494
Q 0.006494
R 0.006494
dtype: float64
安装程序
请解释更多我不太明白的内容..这将如何应用到我的代码中?@piRSquared向您展示了如何获取文本字符串并将其输入到数据框中,您可以在其中执行pandas
操作。这怎么不能回答你的问题?你能更具体地说你还需要什么帮助吗?哦,我现在明白了,很抱歉我有点困惑,我认为最好的部分是用一行代码来解决@payne,谢谢much@campellcl我现在只需要我提到的if-else语句,提前谢谢。
text = """
a;sdlkfja;sldkfja
spogkia
;dlkfq
;welrfuq[3094t8urq34TRQaaj]
aksdfjpaoi43urpq9384t983456tuyweirghnwehrg
q34haed89fy9q9384uithnjlfasdf;q3p[er]q34t9rwiofdj"""