仅将一列提取到 csv 而不是所有列

extract only one column to csv instead of all the columns

我在一列(Id、主题、单词)中有 5000 行的 json 数据。我拆分了显示结果的数据 Python 很好,但是当我提取到 SCV 时,它只显示该列的一行。您知道为什么以及如何解决吗?

显示:

0
 
| 0         |
| --------  |
|  word1    |
|  word2    |
|  word3    |

我需要所有列,而不仅仅是 0

另外,当我在 df=pd.DataFrame(s) 之后打印 df 时,仅显示第一行。为什么?


for row in res:
            result=( ''.join(row[0]))
#             print(result)
#             print("\n")
            p = Payload(result)  
            print(p.ID)
            print(p.subject)
            s=p.words.split("|")
            print(s)  
            df=pd.DataFrame(s)
            for id, col in enumerate(s):
                df.to_csv('test.csv', sep='\t', encoding='utf-8')  
                #out = [s for c in df]
                #print(out)
                #df_big = pd.concat(out, ignore_index=True, axis=1)
                print(id, col)
                #print(df)
# writer=pd.ExcelWriter('test.xlsx', engine='xlsxwriter')
# df.to_excel(writer, sheet_name='welcome')
# writer.save()             

我相信您想将每一列提取到一个 csv 文件中。

这将遍历数据框中的列并将它们导出到 csv 为 column_name.csv

for col in df.columns.tolist():
    df[col].to_csv(os.path.join(col + ".csv"))

您正在为每一行创建一个新的数据框。相反,您可以创建一次数据框并将新行附加到数据框(这仍然效率不高 - 见下文)。

df = pd.DataFrame()

for row in res:
        result = ( ''.join(row[0]))
        p = Payload(result)  
        s = p.words.split("|")
        df.loc[len(df.index)] = s

df.to_csv('test.csv', sep='\t', encoding='utf-8')

理想情况下,您应该将数据放在列表列表中,您应该从中创建数据框。

data = []

for row in res:
    result = ( ''.join(row[0]))
    p = Payload(result)  
    s = p.words.split("|")
    data.append(s)

df = pd.DataFrame(data)
inventory = list(Inventory.objects.all())
header = list(Header.objects.all())
setup = list(Setup.objects.all())
revision = list(Revisions.objects.all())
spec = list(SpecificationDetails.objects.all())
review = list(Reviewers.objects.all())
iterates = inventory + header + setup + revision + spec + review

zip_file = list(zip(iterates))

import pandas as pd

df = pd.DataFrame(zip_file, columns = ['Inventory', 'Header','Setup','Revisoin','Spec','Review'])

context = {
        'df':  df }
return render(request, 'crud/dashboard.html', df)