我有5个不同的数据框,我希望一个接一个地输出到单个文本文件。
由于我的具体目的,我不想要分隔符。
最快的方法是什么?
实施例: 以下是5个数据帧。空格表示新列。
1st df AAA 1 2 3 4 5 6
2nd BBB 1 2 3 4 5 6 7 8 9 10
3rd CCC 1 2 3 4 5 6 6 7 12 2 3 3 4 51 2
CCC 1 2 3 4 5 6 6 7 12 2 3 3 4 51 2
4th DDD 1 2 3 4 5 6 2 3 4 5
5th EEE 1 2 3 4 5 6 7 8 9 10 1 2 2
我想在单个文本文件中将上述内容转换为下面的内容:
AAA123456
BBB12345678910
CCC12345667122334512
CCC12345667122334512
DDD1234562345
EEE12345678910122
请注意,刚刚删除了列,但使用新行保留了行。
我试过谷歌搜索,但to_csv似乎需要一个分隔符,我也遇到了一些解决方案使用" open"和"写"但这似乎需要遍历数据框中的每一行。
欣赏任何想法!
谢谢,
答案 0 :(得分:0)
您可以将数据框与pd.concat
合并。
import pandas as pd
df1 = pd.DataFrame({'AAA': [1, 2, 3, 4, 5, 6]}).T
df2 = pd.DataFrame({'BBB': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]}).T
df_all = pd.concat([df1, df2])
输出(您可以根据需要进行格式化):
0 1 2 3 4 5 6 7 8 9
AAA 1 2 3 4 5 6 NaN NaN NaN NaN
BBB 1 2 3 4 5 6 7.0 8.0 9.0 10.0
写入CSV [编辑:使用广告素材分隔符]:
df_all.to_csv('df_all.csv', sep = ',')
导入CSV并删除空格:
with open('df_all.csv', mode = 'r') as file_in:
with open('df_all_no_spaces.txt', mode = 'w') as file_out:
text = file_in.read()
text = text.replace(',', '')
file_out.write(text)
最后一点必须采用更优雅的方式,但这样做有效。也许有充分的理由,大熊猫不支持导出到没有分隔符的CSV。
编辑:您可以使用逗号写入CSV,然后将其删除。 :)
答案 1 :(得分:0)
要在单个文本文件中收集一些数据框,请执行以下操作:
whole_curpos = ''
#read every dataframe
for df in dataframe_list:
#gather all the column in a single column
df['whole_text'] = df[col0].astype(str)+df[col1]+...+df[coln]
for row in range(df.shape[0]):
whole_curpos = whole_curpos + df['whole_text'].iloc[row]
whole_curpos = whole_curpos + '\n'