我有一个数据帧列表,希望将其转换为多个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的新手时,任何帮助将不胜感激。
谢谢:)
答案 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))