在Python中将多行字符串转换为csv
获取此字符串的最佳方式是:在Python中将多行字符串转换为csv,python,Python,获取此字符串的最佳方式是: 1 2 3 4 a b c d 1 2 3 4 a b c d 1 2 3 4 a b c d 并转换为包含6列的CSV 所需输出 是将导入熊猫的CSV: 1,a,1,a,1,a 2,b,2,b,2,b 等等 根据注释将所需输出更新为6行 更新。如果我将字符串赋给l变量,则可以得到如下第一行: l.split()[0::4] ['1', 'a', '1', 'a', '1', 'a'] 尽管艺术的答案被接受,但这里有另一种利用熊猫的方式。如果使用类似的方法,则
1
2
3
4
a
b
c
d
1
2
3
4
a
b
c
d
1
2
3
4
a
b
c
d
并转换为包含6列的CSV
所需输出
是将导入熊猫的CSV:
1,a,1,a,1,a
2,b,2,b,2,b
等等
根据注释将所需输出更新为6行
更新。如果我将字符串赋给l
变量,则可以得到如下第一行:
l.split()[0::4]
['1', 'a', '1', 'a', '1', 'a']
尽管艺术的答案被接受,但这里有另一种利用熊猫的方式。如果使用类似的方法,则不需要在使用pandas导入之前导出数据
import pandas as pd
myFile="lines_to_read2.txt"
myData = pd.DataFrame (columns=['col1', 'col2', 'col3','col4'])
mycolumns = 4
thisItem = list()
with open(myFile, 'r') as linesToRead:
for thisLine in linesToRead:
thisItem.append(thisLine.strip('\n, " "'))
if len(thisItem) == mycolumns:
myData = myData.append({'col1':thisItem[0],'col2':thisItem[1],'col3':thisItem[2],'col4':thisItem[3]}, ignore_index=True)
thisItem = list()
myData.to_csv('lines_as_csv_file.csv', index=False)
print(myData) # Full Table
你能告诉我们到目前为止你已经尝试了什么吗?我在这里看到了4列,而不是6列。你是如何决定把每个项目放在哪里的?请看我的更新,它显示了我如何得到第一行并解释了模式。你可以做得更短:
d=data[I::4]
import pandas as pd
myFile="lines_to_read2.txt"
myData = pd.DataFrame (columns=['col1', 'col2', 'col3','col4'])
mycolumns = 4
thisItem = list()
with open(myFile, 'r') as linesToRead:
for thisLine in linesToRead:
thisItem.append(thisLine.strip('\n, " "'))
if len(thisItem) == mycolumns:
myData = myData.append({'col1':thisItem[0],'col2':thisItem[1],'col3':thisItem[2],'col4':thisItem[3]}, ignore_index=True)
thisItem = list()
myData.to_csv('lines_as_csv_file.csv', index=False)
print(myData) # Full Table