Python Pandas DataFrame将每一行的列转换为Pandas系列的一列

时间:2019-12-09 16:35:00

标签: python pandas dataframe series

我正在尝试将Pandas.DataFrame(df)的数据转换为形状(3,1),每一行都是Pandas.Series。 当我运行代码时,我会在每个单元格中不断获取NaN而不是Pandas.Series。

import pandas as pd
import numpy as np
df = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),columns=['a', 'b', 'c'])
s = pd.DataFrame(np.zeros(len(df.index))) #creates desired shape

for index, row in df.iterrows():
    print(row)
    s.iloc[index] = pd.Series(row)
s.head()

2 个答案:

答案 0 :(得分:0)

这可能就是您想要的

X_train = np.array(pd.Series(df.values.tolist())).reshape(3, 1)

print(X_train.shape)
(3, 1)

答案 1 :(得分:0)

您不应将位置设置为值。而是考虑将DataFrame创建为

s = pd.DataFrame(columns=['new_column']) # Empty Dataframe with 1 Column

然后您可以在行中附加

s = s.append({'new_column': row}, ignore_index=True) # Add the Series as an Element