将对象列出到单个CSV中

时间:2018-09-03 03:25:07

标签: python python-3.x csv

我有一个数据帧列表,希望将其转换为多个csv。

示例:

# set seed for random data
set.seed(123)

# create data frame with two random vectors
df <- data.frame(a = rnorm(10),
                 b = rnorm(10))

# create a logical (boolean) vector
df$c <- (df$a > df$b)

print(df)
#>              a          b     c
#> 1  -0.56047565  1.2240818 FALSE
#> 2  -0.23017749  0.3598138 FALSE
#> 3   1.55870831  0.4007715  TRUE
#> 4   0.07050839  0.1106827 FALSE
#> 5   0.12928774 -0.5558411  TRUE
#> 6   1.71506499  1.7869131 FALSE
#> 7   0.46091621  0.4978505 FALSE
#> 8  -1.26506123 -1.9666172  TRUE
#> 9  -0.68685285  0.7013559 FALSE
#> 10 -0.44566197 -0.4727914  TRUE

预期输出:具有4个名称为df1.csv,df2.csv的csv文件...

但是我面临两个问题:

第一个问题:

List_Df = [df1,df2,df3,df4]
for i in List_Df:
    i.to_csv("C:\\Users\\Public\\Downloads\\"+i+".csv")

第二个问题:

 AttributeError: 'list' object has no attribute 'to_csv'

当我是Python和SOF的新手时,任何帮助将不胜感激。

谢谢:)

2 个答案:

答案 0 :(得分:2)

尝试一下:

import pandas as pd

List_Df = [df1,df2,df3,df4]
for i,e in enumerate(List_Df):
    df = pd.DataFrame(e)
    df.to_csv("C:\\Users\\Public\\Downloads\\"+"df"+str(i)+".csv")

答案 1 :(得分:0)

对于第二个问题,您将必须首先命名数据框:

for j,df in enumerate(List_Df):
    df.name = 'df'+str(j)
    df.to_csv("C:\\Users\\Public\\Downloads\\%s.csv" %(df.name))

,甚至只是获取一个字符串并添加索引,而无需先命名数据框:

for j,df in enumerate(List_Df):
    name = 'df'+str(j)
    df.to_csv("C:\\Users\\Public\\Downloads\\%s.csv" %(name))