Skip to main content
 首页 » 编程设计

python之如何将字符串值添加到 DataFrame

2025年05月04日25xxx_UU

string = 'cool' 
df = pd.DataFrame(columns=['string_values']) 

附加

df.append(string) 

当我尝试将它附加到 df 时出现此错误。 (是否只针对数值数据?)

cannot concatenate object of type "<class 'str'>"; only pd.Series, pd.DataFrame, and pd.Panel (deprecated) objs are valid 

我只想在数据框中添加一个字符串值 string = 'cool',但出现此错误。

请您参考如下方法:

我认为最好的方法是使用 DataFrame 构造函数并分配一个元素列表:

string = 'cool' 
df = pd.DataFrame([string], columns=['string_values']) 
print (df) 
  string_values 
0          cool 

如果字符串是在循环中生成的,最好将它们附加到一个列表中,然后只传递给构造函数一次:

L  = [] 
for x in range(3): 
    L.append(string) 
 
df = pd.DataFrame(L, columns=['string_values']) 
print (df) 
  string_values 
0          cool 
1          cool 
2          cool 

性能:

In [43]: %%timeit 
    ...: L  = [] 
    ...: for x in range(1000): 
    ...:     value1 = "dog" + str(x) 
    ...:     L.append(value1) 
    ...:  
    ...: df = pd.DataFrame(L, columns=['string_values']) 
    ...:  
1.29 ms ± 56.6 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each) 
 
In [44]: %%timeit 
    ...: df = pd.DataFrame(columns=['string_values']) 
    ...: for x in range(1000): 
    ...:     value1 = "dog" + str(x) 
    ...:     df = df.append({'string_values': value1}, ignore_index=True) 
    ...:  
1.19 s ± 34.3 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)