将DataFrame附加为新列



我有以下代码:

rev = input(rev: )
def ds():
data = pd.read_excel(r'H:sysfile.xls', skiprows=2)
dataset1 = pd.DataFrame(data, columns=['Col_1', 'Col_2', 'Col_3', 'Col_4'])
dataset2 = pd.DataFrame(data, columns=['Col_5'])
dataset2['Col_5'] = dataset2['Col_5'].fillna(rev)
ds()

Col_5是xls文件中现有的列。我想给列中的每个单元格提供来自rev的输入如果我print()dataset1,我将获得现有DataFrame的内容(从xls-文件读取(:

A    B    C
0  x    y    z
1  x    y    z
2  x    y    z

现在,我想将rev=input()的用户输入写入DataFramedataset2,并将其附加到dataset 1

输入:

>>>rev: h

应该变成这个(dataset2(:

D
0   h
1   h
2   h

并应用于dataset1:

A    B    C    D
0  x    y    z    h
1  x    y    z    h
2  x    y    z    h

我需要帮助!

如果您已经设法用用户输入填充数据集2,那么您需要的是加入两个数据集:

dataset1 = pd.DataFrame({'A': ['X', 'X', 'X', 'X'], 'B': ['Y', 'Y', 'Y', 'Y'], 'C': ['z', 'z', 'z', 'z']})
Out[5]: 
A  B  C
0  X  Y  z
1  X  Y  z
2  X  Y  z
3  X  Y  z
dataset2 = pd.DataFrame({'D': ['h', 'h', 'h', 'h']})
Out[8]: 
D
0  h
1  h
2  h
3  h

在这一点上,你需要加入他们:

result = pd.concat([df1, df2], axis=1, sort=False)
Out[10]: 
A  B  C  D
0  X  Y  z  h
1  X  Y  z  h
2  X  Y  z  h
3  X  Y  z  h

您可以在此处阅读以了解更多详细信息:https://pandas.pydata.org/pandas-docs/stable/user_guide/merging.html

您可以获得数据帧的Transpose,并将该列添加为一行。

添加该行后,您可以再次使用Transpose将数据帧转换为其正常形式的

最新更新