簡體   English   中英

將許多一維數組添加到 dataframe 作為一行?

[英]Add many 1-D array to dataframe as a row?

我是 python 的新手,我想知道如何將許多一維數組添加到 dataframe 作為一行。 我在這里查看了上一個問題,但在我的情況下有點不同。 這是代碼:

df = pd.DataFrame(columns=['Col1', 'Col2', 'Col3'])
arr = np.empty(3)
arr[0] = 756
arr[1] = 123
arr[2] = 452

假設這個答案很好用:

df.append(pd.DataFrame(arr.reshape(1,-1), columns=list(df)), ignore_index=True)

但是當我想在同一個 dataframe 中添加另一個一維數組時:

a = np.empty(3)
a[0] = 700
a[1] = 100
a[2] = 400
df.append(pd.DataFrame(a.reshape(1,-1), columns=list(df)), ignore_index=True)

我得到了空的 dataframe。 它有什么問題? 一般如何添加許多一維數組? 任何幫助將非常感激!

我的願望output:

+------+------+------+
| Col1 | Col2 | Col3 |
+------+------+------+
|  756 |  123 |  452 |
+------+------+------+
|  700 |  100 |  400 |
+------+------+------+

您需要重新分配df

這個:

df = df.append(pd.DataFrame(arr.reshape(1,-1), 
                            columns=list(df)), ignore_index=True)

那么完整的代碼就變成了:

import pandas as pd
import numpy as np

df = pd.DataFrame(columns=['Col1', 'Col2', 'Col3'])
arr = np.empty(3)
arr[0] = 756
arr[1] = 123
arr[2] = 452
df = df.append(pd.DataFrame(arr.reshape(1, -1),
                            columns=list(df)), ignore_index=True)
a = np.empty(3)
a[0] = 700
a[1] = 100
a[2] = 400
df = df.append(pd.DataFrame(a.reshape(1, -1),
                            columns=list(df)), ignore_index=True)
print('Result: ')
print(df)

# A bit more efficient though:
arr = np.empty((2, 3))
arr[0, 0] = 756
arr[0, 1] = 123
arr[0, 2] = 452

arr[1, 0] = 700
arr[1, 1] = 100
arr[1, 2] = 400

df_2 = pd.DataFrame(columns=['Col1', 'Col2', 'Col3'], data=arr)
print('\nSame result, but more efficient : ')
print(df_2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM