【发布时间】:2019-08-14 19:25:52
【问题描述】:
我有来自我试图放在一起的各种 csv 文件的数据。我把它全部放在一个数据框中。如何将数据合并到相应的 A、B、C 列中并为每一行包含一个标题?
for data_base in data:
base_data.append(data_base['A'])
base_data.append(data_base[' B'])
base_data.append(data_base[' C'] )
# np.append(base_data, np.nan)
df_name = pd.DataFrame(name_join)
df_data = pd.DataFrame(base_data)
trp = np.transpose(df_data)
实际:
A B C A B C A B C
0.7283 0.743 0.01 0.7283 0.7512 0.02 0.7283 0.7456 0.02
0.5165 0.488 0.03 0.5165 0.4756 0.04 0.5165 0.4707 0.05
0.5087 0.4781 0.03 0.5087 0.4611 0.05 0.5087 0.4467 0.06
0.4598 0.4834 0.02 0.4598 0.4938 0.03 0.4598 0.4793 0.02
0.4883 0.5235 0.04 0.4883 0.5173 0.03 0.4883 0.5278 0.04
0.5993 0.6229 0.02 0.5993 0.6223 0.02 0.5993 0.6258 0.03
0.5351 0.5983 0.06 0.5351 0.6029 0.07 0.5351 0.613 0.08
0.6105 0.6314 0.02 0.6105 0.6434 0.03 0.6105 0.6361 0.03
0.5946 0.6495 0.05 0.5946 0.6452 0.05 0.5946 0.6463 0.05
0.7335 0.7506 0.02 0.7335 0.7559 0.02 0.7335 0.7497 0.02
预期:
A B C
Cow 0.7283 0.743 0.01
0.5165 0.488 0.03
0.5087 0.4781 0.03
0.4598 0.4834 0.02
0.4883 0.5235 0.04
0.5993 0.6229 0.02
0.5351 0.5983 0.06
0.6105 0.6314 0.02
0.5946 0.6495 0.05
0.7335 0.7506 0.02
Cat 0.7283 0.7512 0.02
0.5165 0.4756 0.04
0.5087 0.4611 0.05
0.4598 0.4938 0.03
0.4883 0.5173 0.03
0.5993 0.6223 0.02
0.5351 0.6029 0.07
0.6105 0.6434 0.03
0.5946 0.6452 0.05
0.7335 0.7559 0.02
Dog 0.7283 0.7456 0.02
0.5165 0.4707 0.05
0.5087 0.4467 0.06
0.4598 0.4793 0.02
0.4883 0.5278 0.04
0.5993 0.6258 0.03
0.5351 0.613 0.08
0.6105 0.6361 0.03
0.5946 0.6463 0.05
0.7335 0.7497 0.02
【问题讨论】:
-
你可以使用
concat -
您的每个 csv 是否具有相同数量的列和相同的名称?
-
是的,它们都是相同的格式
-
为什么有
nan行?可能更容易处理MultiIndex -
这是个坏主意。你的列变成了对象,然后像
.sum()这样简单的算术运算变得很痛苦。你真的应该使用 MultiIndex 并将名称存储在第一级:pd.concat(data, keys=['name_1', 'name_2', 'name_3'])
标签: python pandas csv dataframe reshape