Python根据金字塔的形状打印

Python根据金字塔的形状打印,python,Python,我的csv数据如下: 我使用此代码打印: import pandas as pd import csv rs = pd.read_csv(r'D:/Clustering_TOP.csv',encoding='utf-8') with open('D:/Clustering_TOP.csv','r') as csvfile: reader = csv.reader(csvfile) rows = [row for row in reader] csv_title = rows[0

我的csv数据如下:

我使用此代码打印:

import pandas as pd
import csv
rs = pd.read_csv(r'D:/Clustering_TOP.csv',encoding='utf-8')
with open('D:/Clustering_TOP.csv','r') as csvfile:
    reader = csv.reader(csvfile)
    rows = [row for row in reader]
csv_title = rows[0]
csv_title = csv_title[1:]
len_csv_title = len(csv_title)
for i in range(len_csv_title):
    for j in range(i,len_csv_title):
        print(str(rs[csv_title[i]].corr(rs[csv_title[j]])), end='\t')
    print()
打印的结果是,格式不正确:

但事实上,我希望打印像金字塔一样,例如:


如何修改我的代码?

我认为问题在于您的第二个“for”循环。对于范围内的j(len\u csv\u title),范围应为
,而不是
范围内(i,len\u csv\u title)
,更改以下行:

for j in range(i,len_csv_title):
致:


这是一个示例代码,以您请求的模式开始打印

def pyramidpattern(n):
  for i in range(0, n):
    for j in range(0, i+1):
      print("* ",end="")
    print("\r")

n=5
pyramidpattern(n)
输出:

* 
* * 
* * * 
* * * * 
* * * * * 

你好,我不是100%确定,但我认为你的第二个问题。试试这个:

for i in range(len_csv_title):
    for j in range(i+1):
        print(str(rs[csv_title[i]].corr(rs[csv_title[j]])), end='\t')
    print()

在代码中需要反向反向循环。只要改变for循环,它就会工作

import pandas as pd
import csv
rs = pd.read_csv(r'file',encoding='utf-8')
with open('file','r') as csvfile:
    reader = csv.reader(csvfile)
    rows = [row for row in reader]
csv_title = rows[0]
csv_title = csv_title[1:]
len_csv_title = len(csv_title)

for i in range(len_csv_title):
    for j in range(0,i+1):
        print(str(rs[csv_title[i]].corr(rs[csv_title[j]])), end='\t')
    print()
尝试为循环更改反向 对于范围(0,i+1)内的j:

import pandas as pd
import csv
rs = pd.read_csv(r'D:/Clustering_TOP.csv',encoding='utf-8')
with open('D:/Clustering_TOP.csv','r') as csvfile:
    reader = csv.reader(csvfile)
    rows = [row for row in reader]
csv_title = rows[0]
csv_title = csv_title[1:]
len_csv_title = len(csv_title)
for i in range(len_csv_title):
    for j in range(i,len_csv_title):
        print(str(rs[csv_title[i]].corr(rs[csv_title[j]])), end='\t')
    print()
将范围(i,len\u csv\u title)中j的
更改为范围(0,i+1)中j的
应该有效