我有一个数据框,其中包含各种数据-字符串,整数和日期对象。
我已经有一段代码(deal_value(val))
,用于标识val的类型并将其设置为字符串。我需要能够将其应用于我现在拥有的数据框中的所有单元格。
在那之后,我需要将行值与数据框中的行名连接起来。
我查看了这两种方法的apply函数,但无法弄清楚在两种情况下如何使用它
数据框示例:
name age dob
0 A 10 20-Jun-1969
我希望数据框为:
name age dob
0 A name 10 age 20-Jun-1969 dob
我的函数deal_value会接受每个单元格元素,并使它们很好地串联成一个字符串, 所以最终我希望它是这样的:
"A name, 10 age,20-Jun-1969 AND (row-2) AND (row-3)......."
答案 0 :(得分:1)
import pandas
df = pandas.DataFrame({'name': 'A', 'age': 10, 'date_of_birth': '20-Jun-1969'}, index=[0])
for col in list(df.columns):
df[col] = df[col].apply(lambda x: ' '.join([str(col), str(x)]))
df.head()
输出
name age date_of_birth
0 name A age 10 date_of_birth 20-Jun-1969
字符串输出:
df_to_string = df.to_string(header=False,
index=False,
index_names=False).split('\n')
vals = [ ', '.join(element.lstrip().rstrip().split(' ')) for element in df_to_string]
vals_str = ' And '.join(vals)
print(vals_str)
输出:
'name A, age 10, date_of_birth 20-Jun-1969 And name B, age 5, date_of_birth 21-Jun-1969'
答案 1 :(得分:1)
似乎您只需要:
df.astype(str).add(' '+df.columns)
name age dob
0 A name 10 age 20-Jun-1969 dob