使用python根据输入的英文单词生成名为QQ的表格存入数据库中,有几个单词表格就有几行,显示id,然后将单词中的英文字母个数存到列中,一列代表一个字母,没有显示零,最后用列中的数字替换英文输出
时间: 2023-09-19 19:10:50 浏览: 82
好的,您需要安装以下库:
- `pandas`
- `numpy`
- `sqlalchemy`
以下是代码示例,可以根据您的具体需求进行修改:
```python
import pandas as pd
import numpy as np
from sqlalchemy import create_engine
# 输入英文单词
words = input("请输入英文单词,多个单词用逗号隔开:").split(",")
# 创建空的字母计数表格
letters = list("abcdefghijklmnopqrstuvwxyz")
df = pd.DataFrame(np.zeros((len(words), len(letters))), columns=letters)
# 统计每个单词中各个字母的个数
for i, word in enumerate(words):
for letter in word.lower():
if letter in letters:
df.loc[i, letter] += 1
# 将表格中的0替换为空格
df.replace(0, "", inplace=True)
# 显示表格
print(df)
# 将表格存入数据库中
engine = create_engine("sqlite:///qq.db")
df.to_sql("qq", engine, if_exists="replace", index_label="id")
# 从数据库中读取数据并输出
df_from_sql = pd.read_sql_query("SELECT * FROM qq", engine, index_col="id")
print(df_from_sql.replace("", 0))
```
其中,`input("请输入英文单词,多个单词用逗号隔开:")`用于获取用户输入的英文单词,`.split(",")`用于将多个单词用逗号分割成列表。
`pd.DataFrame(np.zeros((len(words), len(letters))), columns=letters)`创建了一个空的字母计数表格,其中`len(words)`表示行数,`len(letters)`表示列数。
`for i, word in enumerate(words):`用于遍历每个单词,`for letter in word.lower():`用于遍历单词中的每个字母,`if letter in letters:`判断该字母是否为英文字母,若是则在对应的单元格中加1。
`df.replace(0, "", inplace=True)`将表格中的0替换为空格。
`df.to_sql("qq", engine, if_exists="replace", index_label="id")`将表格存入名为`qq`的数据库中,若数据库中已有同名表格,则用新表格替换它。`index_label="id"`将索引列命名为`id`。
`pd.read_sql_query("SELECT * FROM qq", engine, index_col="id")`从数据库中读取数据,`index_col="id"`将`id`列作为索引列。
最后,`.replace("", 0)`将表格中的空格替换回0,用于输出。
阅读全文