我有一个元组,名为a,其中有10个columns.Sample数据,如下所示
((12, '22', '32'),
Column-1 Column-2 Column-3 colum-4 Column-5 Colum-6 Colum-7 Week ACCT_YEAR NAME
12 22 32 … … … … 51 2016 Name-1
12 22 32 … … … … 51 2016 Name-2
12 22 32 … … … … 51 2016 Name-3
12 22 32 … … … … 51 2016 Name-4
12 22 32 … … … … 51 2016 Name-5
12 22 32 … … … … 51 2016 Name-6
12 22 32 … … … … 52 2016 Name-7
12 22 32 … … … … 52 2016 Name-8
12 22 32 … … … … 52 2016 Name-9
12 22 32 … … … … 52 2016 Name-10
12 22 32 … … … … 52 2016 Name-11
12 22 32 … … … … 52 2016 Name-12
12 22 32 … … … … 52 2016 Name-13
12 22 32 … … … … 52 2016 Name-14)我想把它转换成熊猫数据框架。所以我用了下面的代码
y=pd.DataFrame(list(a))但是y.shape正在显示2&在打印y之后,我看到它包含2行,其中第二行是列标题&第一行包含一些列的数据&对于其他列,没有列也比元组a有更多的列。你能建议我如何在python 3.6中正确地做这件事吗?
下面给出了.repr()的输出
((12, '22', '32'), Column-1 Column-2 Column-3 Column-4 Column-5 \\\n1101 12 22 32 ... ... \n1102 12 22 32 ... ... \n1103 12 22 32 ... ... \n1104 12 22 32 ... ... \n1105 12 22 32 ... ... \n1106 12 22 32 ... ... \n1107 12 22 32 ... ... \n1108 12 22 32 ... ... \n1109 12 22 32 ... ... \n1110 12 22 32 ... ... \n1111 12 22 32 ... ... \n1112 12 22 32 ... ... \n1113 12 22 32 ... ... \n1114 12 22 32 ... ... \n1115 12 22 32 ... ... \n1116 12 22 32 ... ... \n1117 12 22 32 ... ... \n1118 12 22 32 ... ... \n1119 12 22 32 ... ... \n1120 12 22 32 ... ... \n1121 12 22 32 ... ... \n1122 12 22 32 ... ... \n1123 12 22 32 ... ... \n1124 12 22 32 ... ... \n1125 12 22 32 ... ... \n1126 12 22 32 ... ... \n1127 12 22 32 ... ... \n1128 12 22 32 ... ... \n\n Column-6 Column-7 W20162016k 51CC51_Y201651R \\\n1101 ... ... 515151P325151M51 2016 \n1102 ... ... 51 51 \n1103 ... ... 0000453 2016 \n1104 ... ... 0000512 2016 \n1105 ... ... 51 51 \n1106 ... ... 51 51 \n1107 ... ... 51 51 \n1108 ... ... 51 51 \n1109 ... ... 0000561 2016 \n1110 ... ... 0000871 2016 \n1111 ... ... 51 51 \n1112 ... ... 51 51 \n1113 ... ... 51 51 \n1114 ... ... C51 51 \n1115 ... ... 0000604 51 \n1116 ... ... 51 51 \n1117 ... ... 51 51 \n1118 ... ... 511 51 \n1119 ... ... 51 51 \n1120 ... ... 51 51 \n1121 ... ... 51 51 \n1122 ... ... 51 51 \n1123 ... ... 51 51 \n1124 ... ... 51 51 \n1125 ... ... 51 51 \n1126 ... ... 51 51 \n1127 ... ... 51 51 \n1128 ... ... 5151 51 \n\n N51M2016 \n1101 C \n1102 C \n1103 C \n1104 C \n1105 C \n1106 C \n1107 C \n1108 C \n1109 C \n1110 C \n1111 C \n1112 C \n1113 C \n1114 C \n1115 C \n1116 C \n1117 C \n1118 C \n1119 C \n1120 C \n1121 C \n1122 C \n1123 C \n1124 C \n1125 C \n1126 C \n1127 C \n1128 C )"发布于 2018-02-19 17:19:20
答案很大程度上取决于元组中的字符串。如果你复制的实际上是字符串中的内容,你必须将字符串转换成熊猫可以解析的东西,这就是为什么我添加了regex替换。
import pandas as pd
import io
import re
a = (('12','22','32'),
"""Column-1 Column-2 Column-3 colum-4 Column-5 Colum-6 Colum-7 Week ACCT_YEAR NAME
12 22 32 … … … … 51 2016 Name-1
12 22 32 … … … … 51 2016 Name-2
12 22 32 … … … … 51 2016 Name-3""")
# The following substitution is only valid if there are absolutely no spaces in values
b = re.sub(string=a[1], pattern=' +', repl=',')
y = pd.read_csv(io.StringIO(b))
y注意:这个答案假设元组a中的第一个值不是应该读入DataFrame的数据的一部分。这使得我们更关注如何将保存在字符串中的数据读入pandas.DataFrame而不是元组。
https://stackoverflow.com/questions/48869093
复制相似问题