将从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"""