yal*_*man 6 python csv python-3.x
我有一个 csv,看起来像这样:
someFile.csv
Header1 Header2 Header3
aa aaa a
bbbb bbbbbb aa
Run Code Online (Sandbox Code Playgroud)
我想计算每列中的平均字符串长度并创建结果的 csv。这就是示例中的样子:
results.csv
Header1 Header2 Header3
3 4.5 1.5
Run Code Online (Sandbox Code Playgroud)
我一直在尝试在 Python 中使用 csv 库,但没有成功。有没有一种简单的方法可以实现这一点?
Pin*_*ang 16
你可以试试熊猫。如果您没有安装 pandas,请pip install pandas安装 pandas。
import pandas as pd
# df = pd.read_csv('my_csv.csv')
df = pd.DataFrame([['aa', 'aaa', 'a'], ['bbbb', 'bbbbbb', 'aa']],
columns=['Header1', 'Header2', 'Header3'])
result = pd.DataFrame([[]])
for col in df:
result[col] = df[col].apply(len).mean()
result.to_csv('result.csv')
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
您可以使用zip行和map列来计算平均值:lenstatistics.mean
import csv
from statistics import mean
with open('someFile.csv', 'r', newline='') as f, open('results.csv', 'w', newline='') as output:
reader = csv.reader(f, delimiter=' ', skipinitialspace=True)
headers = next(reader)
writer = csv.writer(output, delimiter = ' ')
writer.writerow(headers)
writer.writerow([mean(map(len, col)) for col in zip(*reader)])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10571 次 |
| 最近记录: |